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 ]