引言:ES6增加了对数组的接口。 |
一、Array.from()方法
Array.from
方法用于将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。
//将类似数组的对象转化为数组 let arraylike = { '0' : 'a', '1' : 'b', '2' : 'c', length : 3 } let arr=Array.from(arraylike); // ['a','b','c'] //将字符串转化为数组 Array.from('hello'); // ['h','e','l','l','o'] //将set解构转化为数组 let nameSet = new Set(['a','b']); Array.from(nameSet); // ['a','b']
二、Array.of()方法
Array.of
方法用于将一组值转化为数组。这个方法的主要目的是弥补构造函数Array()的不足。因为参数的个数会导致Array()函数行为有差异。
Array(3); // [, , ,] Array.of(3); // [3] Array(3,4,5); // [3,4,5] Array.of(3,4,5); // [3,4,5]
三、数组的copyWithin()方法
copyWithin(target,start,end)
方法用于在当前数组内部将指定位置的成员复制到其他位置。
它接受三个参数:
target:从该位置开始替换数据
start:从该位置开始读取数据,默认为0。如果负数,表示倒数第几个。
end:到该位置停止读取数据,默认等于数组长度。如果负数,表示倒数第几个。
[1,2,3,4,5].copyWithin(0,3,4); // [4,2,3,4,5] [1,2,3,4,5].copyWithin(0,-2,-1); // [4,2,3,4,5]
四、数组的find()和findIndex()方法
find()
方法用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行回调函数,知道找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,返回undefined。
findIndex()
方法和find差不多,但是返回的是数组成员的位置。
[1,2,-5,10].find((n) => n<0 ) //-5 [1,2,-5,10].findIndex((n) => n<0 ) //2
五、数组的fill()方法
fill()
方法用于使用给定的值填充数组。
['a','b','c'].fill(7); // [7,7,7] new Array(3).fill(7); // [7,7,7] ['a','b','c'].fill(7,1,2); // ['a',7,'c']
六、数组的entries()、keys()、values()方法
keys()
方法对键名进行遍历。
valuess()
方法对键值进行遍历。
entries()
方法对键值对进行遍历。
for (let index of ['a','b'].keys()){ console.log(index); } //0 //1 for(let elem of ['a','b'].values()){ console.log(elem); } //'a' //'b' for(let [index,elem] of ['a','b'].entries()){ console.log(index,elem); } // 0 'a' // 1 'b'
查看更多ES6教学文章:
参考文献
阮一峰 《ES6标准入门(第2版)》