每日一记之ES6-数组的扩展方法
1、 from()
1.将伪数组转换成真正的数组
function add(){
console.log(arguments);
//es5转换 相对没有这么好理解
let arr = [].slice.call(arguments)
//es6的from()转换
let arr = Array.from(arguments);
//es6的扩展运算符转换
console.log([...伪数组])
}
add(1,2,3);
2.可以接收第二个参数,用来对每个元素进行处理
//这里的ele是自己取的名字,对list里的每一个元素执行该函数(获取ele里的textContent),并且取返回值加入数组
let liContents = Array.from(list,ele =>textContent);
2、of()
将一组值(任意类型,可数组对象等)转换成数组
console.log(Array.of(4,2,6,'hh'));
//[4, 2, 6, 'hh']
3、copywithin(),用的少
将数组指定位置的内容复制到其他位置中,返回当前数组
copywithin(被替换的起始位置,指定数值的起始位置)
console.log([1,2,3,6,7,8].copyWithin(0,3));
//[6,7,8,6,7,8]
4、find() findIndex()
find() :返回符合条件的数组成员的第一个值
let num = [ 1,2,-4,-3,5,7].find(n => n<0) //-10
findIndex() :返回符合条件的第一个数组成员的索引
let num = [ 1,2,-4,-3,5,7].findIndex(n => n<0) //2
5、entries() keys() values()
三者均 返回一个遍历器,可以使用for…of循环进行遍历
keys() 对键名遍历
values()对值遍历
entries()对键值对遍历
for (let index of ["a","b"].keys()){
console.log(index); //0 1
}
for (let ele of ["a","b"].values()){
console.log(ele); // a b
}
for (let [index,ele] of ['a','b'].entries()){
console.log(index,ele); //0,a 1,b
}
6、includes()
返回一个布尔值,表示某个数组是否包含给定的值
console.log([1,2,3].includes(2)) //true
//以前用的是indexOf() 它返回的是1(true)或者-1(false)