Array数组的扩展方法
扩展运算符:可以将数组或对象转为用逗号分隔的参数序列,正好和剩余参数相反。
// 数组中的,逗号会被当作方法的参数分隔符
let ary = ["a","b","c","d"];
console.log(...ary); // 输出结果为a b c d
扩展运算符也可以应用与合并数组。
第一种方法合并数组:
let arr1 = [1,2,3]; // 拆分为1,2,3
let arr2 = [4,5,6]; // 拆分为4,5,6
let newArr = [...arr1,...arr2];
console.log(newArr); // 输出: [1, 2, 3, 4, 5, 6]
第二种方法合并数组:
数组中的push方法可以向数组中追加元素。
let arr1 = [1,2,3,4];
let arr2 = [5,6,7];
arr1.push(...arr2); // 相当于arr1.push(5,6,7);
console.log(arr1); // 输出:[1, 2, 3, 4, 5, 6, 7]
扩展运算符也可以将伪数组转换成真正的数组。
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
let lis = document.querySelectorAll("ul li");
lis.push(1); // 通过标签名获取到的是一个伪数组,是个标签集合,无法使用数组的一些方法,因此使用push会报错
console.log(lis); // 报错
let newLis = [...lis];
newLis.push("hello");
console.log(newLis); //会添加到元素末尾
在Array数组中有个方法:Array.from(),可以将伪数组转换成真正的数组。
let lis = document.querySelectorAll("ul li");
// 将lis作为参数传递到from()中,再创建newLis变量接过来收
let newLis = Array.from(lis);
console.log(newLis); // 输出结果就是真数组
Array数组的扩展方法:实例方法:find(),用于找出第一个符合条件的数组成员,如果没找到返回undefined。
使用方法:
向find()方法中传递一个函数,这个函数有两个参数,第一个参数为当前循环到的值本事,第二个参数为当前循环的索引号。
let arr = [{
id:1,
name:"Alice",
age:21
},{
id:2,
name:"Bob",
age:19
}];
let num = arr.find((ele,index) => {
// 查找数组中id为2的元素
return ele.id == 2;
})
console.log(num); // 返回id为2的元素对象
**Array数组的扩展方法:实例方法:findIndex(),用于找出第一个符合条件的数组成员,如果没找到返回-1,如果找到返回该元素所在位置的索引号。**使用方法和find()一样。
let arr = [{
id:1,
name:"Alice",
age:21
},{
id:2,
name:"Bob",
age:19
},{
id:3,
name:"Tim",
age:16
}];
let num = arr.findIndex((ele,index) => {
return ele.id == 3;
})
// 输出2,返回的是id为3的索引号 因为id:3在数组中的索引号就是2
console.log(num);
Array数组的扩展方法:实例方法:includes(),表示某个数组是否包含给定的值,返回布尔值,如果包含返回true,反之返回false。
let arr = [1,2,3,4];
let a1 = arr.includes(0);
let a2 = arr.includes(2);
console.log(a1); // false
console.log(a2); // true
let arr = [{
id:1,
money:109
},{
id:2,
money:87
},{
id:3,
money:99
}]
let res = arr.includes(arr[3]);
console.log(res); // false,因为最多只有arr[2]
数组中的some()方法
语法:数组.some(function(item,index){return 条件})
参数:item表示遍历的每个元素,index表示每个元素的索引
数组的some方法,表示当前数组中是否有符合条件的数据,有返回true,没有返回false
注意:some方法也可以对数组遍历
let arr = [{name:'河南省'},{name:'河北省'},{name:'黑龙江'}]
arr.some(item =>{
return item.name == '河北省' // 返回true
return item.name == '浙江省' // 返回false
})
数组中的find()方法
表示可以找到对应的对象
语法:数组.find(function(item,index){return 条件})
参数和some方法一样
let arr = [{name:'河南省'},{name:'河北省'},{name:'黑龙江'}]
arr.find(item =>{
return item.name == '河北省' // 返回一个对象:{name:'河北省'}
})