JSTips 笔记01 Array 的三个技巧

JSTips原文

使用ECMAScript 6 中的新特性

1 迭代一个空数组

数组的松散特性

JavaScript 中直接创建的数组是松散的,以至于会有很多坑。

> const arr = new Array(4);
[undefined, undefined, undefined, undefined]

// 不友好预想
> const arr = new Array(4);
> arr.map((elem, index) => index);
[undefined, undefined, undefined, undefined]

// 使用 Array.apply 可以解决
> const arr = Array.apply(null, new Array(4));
> arr.map((elem, index) => index);
[0, 1, 2, 3]

// 测试一下 (可以直接写在浏览器 Console里)
let arr = new Array(4); console.log(arr.map((elem, index) => index));
let brr = Array.apply(null, new Array(4)); console.log(brr.map((elem, index) => index));

2 给方法传一个空参数

> method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token ,

> method('parameter1', null, 'parameter3') // or
> method('parameter1', undefined, 'parameter3');

// 采用数组的松散特性
> method(...['parameter1', , 'parameter3']); // works!

// 测试一下 (可以直接写在浏览器 Console里)
var method = function () { console.log(arguments); }; method(...['parameter1', , 'parameter3']);

3 数组去重

> const arr = [...new Set([1, 2, 3, 3])];
[1, 2, 3]

// 测试一下 (可以直接写在浏览器 Console里)
let arr = [...new Set([1, 2, 3, 3])]; console.log(arr);