ES6 - 數(shù)組

擴展運算符

將數(shù)組轉為逗號分隔的參數(shù)序列
可以將有 iterator 接口的數(shù)據(jù)結構轉為數(shù)組,如 Arguments、NodeList 等
主要用于函數(shù)調(diào)用,可以替代函數(shù)的 apply 方法

運用:
求一個數(shù)組的最大元素:
// ES5 的寫法
Math.max.apply(null, [14, 3, 77])

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


把一個數(shù)組的元素 push 進另一個數(shù)組
// 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);
復制數(shù)組:
// ES5
const a2 = a1.concat();
// ES6
const a2 = [...a1];

合并數(shù)組:
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];

// ES5 的合并數(shù)組
arr1.concat(arr2, arr3);
// ES6 的合并數(shù)組
[...arr1, ...arr2, ...arr3]

把字符串轉為數(shù)組:
[...'hello']

擴展運算內(nèi)部調(diào)用的是Iterator接口,因此只要具有Iterator接口的對象,都可以使用擴展運算符轉為數(shù)組,如 Set / Map / Generator函數(shù)返回的結果等

Array.from()

可以將兩類對象轉為數(shù)組:array-like 和 iterable
可以接受第二個參數(shù),作用類似 map:

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

其它

fill() 使用給定值,填充一個數(shù)組

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

entries(),keys() 和 values() 返回的是 Iterator 對象,可以使用 for...of 遍歷
flat() 可以將嵌套的數(shù)組拉平,參數(shù)指定想要拉平的層數(shù)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容