ES6数组的扩展

1.Array.from()

用于将两类对象转化为真正的数组:a.Set数据结构和伪数组(比如:NodeList);b.Map数据结构和类似数组的可遍历对象。

...扩展运算符也具有相同的 功能,除下面提到的转化之外

Array.from({ length:3 })    // [ undefined ,undefined ,undefined ]  扩展运算符不能对其进行转化

ES5里面可以用Array.prototype.slice.call()方法代替 或者  [].slice.cal()

Array.form([1,2,3,4] , (x) => x*2)  //可以接受两个参数,第二个参数为一个函数作用相当于map() 方法。如果map()方法中用到了this关键字,还可以向Array。form()传入第三位参数用来绑定this关键字。

Array.from()还可以将字符串转换成数组。

2.Array.of()

它用于将一组值转换成熟组。

Array.of()   // [ ]

Array.of(3)   //  [ , , , ]

Array.of(3,4,5)       // [3,4,5]

3.数组实例的copyWithin()

copyWithin(target, start ,end )    //[1,2,3,4,5].copyWithin(0,3)  // [4,5,3,4,5]

4.数组实例的find()和findIndex() 方法

他俩的参数是一个回调函数,对数组成员依次执行回调函数,直到找出第一个符合条件的数组成员,返回该成员,如若没有find()方法返回undefined,findIndex()方法返回-1;

注意:这两个方法都可以用来寻找NaN ,弥补了indexOf()方法的不足

5.数组实例的fill()方法

[1,2,2].fill(7)    // [7,7,7 ]

[1,2,3,4].fill(7,1,2)   // [ 1,7,3,4 ]

6.数组实例的includes()方法(属于ES7)

[1,2,3].includes(4)     //false

该方法等价于indexOf(),只是indexOf()无法查找NaN。

7.数组的空位

ES6明确将空位转换成undifined;

ES5的every()/some()/filter()/forEach()都会忽略空位

map()会跳过空位,但保留空位

jion()和toString()将空位视为undefined

8.数组推导

var a1 = [ 1,2,3,4 ]

var a2 = [ for ( a of a1)  a*2 ]               //a2 = [ 2,4,6,8 ]

你可能感兴趣的:(ES6数组的扩展)