ES6 - 数组

扩展运算符

将数组转为逗号分隔的参数序列
可以将有 iterator 接口的数据结构转为数组,如 Arguments、NodeList 等
主要用于函数调用,可以替代函数的 apply 方法

运用:
求一个数组的最大元素:
// ES5 的写法
Math.max.apply(null, [14, 3, 77])

// ES6 的写法
Math.max(...[14, 3, 77])


把一个数组的元素 push 进另一个数组
// ES5的 写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
Array.prototype.push.apply(arr1, arr2);

// ES6 的写法
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
复制数组:
// ES5
const a2 = a1.concat();
// ES6
const a2 = [...a1];

合并数组:
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];

// ES5 的合并数组
arr1.concat(arr2, arr3);
// ES6 的合并数组
[...arr1, ...arr2, ...arr3]

把字符串转为数组:
[...'hello']

扩展运算内部调用的是Iterator接口,因此只要具有Iterator接口的对象,都可以使用扩展运算符转为数组,如 Set / Map / Generator函数返回的结果等

Array.from()

可以将两类对象转为数组:array-like 和 iterable
可以接受第二个参数,作用类似 map:

Array.from([1, 2, 3], x => x * x)
// [1, 4, 9]
// 等同于
Array.from(arrayLike).map(x => x * x);

其它

fill() 使用给定值,填充一个数组

new Array(3).fill(7)
// [7, 7, 7]

entries(),keys() 和 values() 返回的是 Iterator 对象,可以使用 for...of 遍历
flat() 可以将嵌套的数组拉平,参数指定想要拉平的层数

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容