您的位置:首页 > 其它

ES6 数组扩展

2017-12-11 15:44 218 查看
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
方法返回一个布尔值,表示某个数组是否包含给定的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: