1.数组的新增方法:
1)Array.from() 伪数组 转换成真数组:
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script>
let _ul = document.querySelectorAll('ul>li');
let array = Array.from(_ul);
console.log(array);
for (const key in array) {
console.log(key);
}
</script>
2)Array.of() 组成新数组:
<script>
let array = Array.of(1,2,3);
let array = new Array(1,2,3);
console.log(array);
</script>
3)Array.includes()查询数组中是否存在这个值:
<script>
console.log(
[1,2,3].includes(12)
);
console.log(
[1,2,3,NaN].includes(NaN)
);
</script>
说明:存在返回true 不存在返回false indexOf 查不到 NaN includes 可以
<script>
console.log(
[{
name :'文丁响'
}].includes({
name:'文丁响'
})
);
</script>
说明: indexOf和includes两个都不能查找对象的值
2.数组的解构:
1)解构:
解开目标的结构
2)完全结构:
<script>
let [temp1,temp2,temp3] = [1,2,3];
console.log(temp1,temp2,temp3);
// temp1 对应的是 [1,2,3][0]
// temp2 对应的是 [1,2,3][1]
// temp3 对应的是 [1,2,3][2]
</script>
3)不完全解构:
如果解构的变量名少于数组的值,这种解构方式称为不完全解构
3.数组的拓展运算符:
1)数组的拓展运算符:
...
2)合并数组:
<script>
let arr = [1, 2, 3];
let newArr = ['a', 'b', 'c', 'd'];
//普通方式
let array = arr.concat(newArr);
//拓展运算符
let array = [...arr,...newArr]
</script>
3)复制数组:
<script>
let arr = [1, 2, 3];
let array = [...arr];
array[0] = 'a';
console.log(array);//['a', 2, 3]
console.log(arr);//[1, 2, 3]
</script>
说明:拓展运算符的复制是深拷贝,改变不会影响原来的值
4)数组的迭代:
1)map:用回调函数 ,组建新的数组
<script>
let arr = [1,2,3,4,5,6,7,8,9];
let newArr = arr.map((item,index) => {
return item + '文丁响'
})
console.log(newArr);
</script>
输出结果:
2) filter:用回调函数,过滤掉不需要的数组里面的值,符合返回值的条件的相应的数组值,组建成新的数组
<script>
let arr = [1,2,3,4,5,6,7,8,9];
let array = arr.filter((item,index)=>{
return item >= 4
})
console.log(array);
</script>
输出结果:
3)some :判断数组里面,只要有一个值满足条件,就返回TRUE,返回的是布尔值
<script>
let arr = [1,2,3,4,5,6,7,8,9];
let array = arr.some((item)=>{
return item > 8
})
console.log(array);
</script>
输出结果:true
4)every:判断数组里面,所有的值是否都满足条件,都满足返回true,只要有一个不满,就返回false
<script>
let arr = [1,2,3,4,5,6,7,8,9];
let array = arr.every((item)=>{
return item > 0
})
console.log(array);
</script>
输出结果:true