1、...扩展运算符
该运算符将一个数组,变为参数序列。
作用:(1)代替aplly
'use strict';
Math.max(...[2,5,8])
(2)将字符串转为数组
2、Array.from
object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。
实际应用中,常见的类似数组的对象是 DOM 操作返回的 NodeList 集合,以及函数内部的arguments
对象。Array.from
都可以将它们转为真正的数组。
// NodeList对象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
});
字符串转为数组:
var ss = Array.from('hello')
Array.from
还可以接受第二个参数,作用类似于数组的map
方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]
3、Array.of
Array.of
方法用于将一组值,转换为数组。
Array.of(3, 11, 8) // [3,11,8]
Array.of
基本上可以用来替代Array()
或new Array()
,并且不存在由于参数不同而导致的重载。它的行为非常统一。
Array.of() // []
Array.of(1) // [1]
Array.of(1, 2) // [1, 2]
Array.of
总是返回参数值组成的数组。如果没有参数,就返回一个空数组。
4、数组实例的 find() 和 findIndex()
数组实例的find
方法,用于找出第一个符合条件的数组成员。
数组实例的findIndex
方法的用法与find
方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
。
[1, 5, 10, 15].findIndex(function(value, index, arr) {
return value > 9;
}) // 2
回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。
5、数组实例的 entries(),keys() 和 values()
ES6 提供三个新的方法——entries()
,keys()
和values()
——用于遍历数组。
可以用for...of
循环进行遍历,唯一的区别是keys()
是对键名的遍历、values()
是对键值的遍历,entries()
是对键值对的遍历。
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
6、includes
Array.prototype.includes
方法返回一个布尔值,表示某个数组是否包含给定的值