数组详解原创
# 数组的详解
# 数组去重
// 核心思想
// 创建一个空数组只添加未包含的元素
// 删除重复的元素
function setArray(arr){
return [...new Set(arr)];
}
function filArray(arr){
return arr.filter((item,index)=>{
return arr.indexOf(item)==index;
})
}
function redArray(arr){
return arr.reduce((prev,cur)=>{
return prev.includes(cur)?prev:[...prev,cur];
},[])
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 类数组和数组
- 常见的类数组arguments,rest,querySelectAll()
- 类数组拥有length属性。但不可调用数组方法
# 类数组转数组
// 核心思想
// 强制类型转换 转换后的长度由length决定,如果内部索引不连续会自动补齐,值为undefined
// 利用length属性遍历 只有索引值为length的位置时才会被遍历到
// 借用数组生成新数组方法
function convertFrom(arg){
return Array.from(arg);
}
function convertLen(arg){
let arr = [];
for(let i=0; i<arg.length; i++){
arr.push(arg[i]);
}
return arr;
}
function convertSlice(arg){
return Array.prototype.slice.call(arg);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20