ES6+ Array.of()
1. 前言
本節介紹 ES6 的數組的新增方法 Array.of() 該方法創建一個具有可變數量參數的新數組實例,而不考慮參數的數量或類型。Array.of() 主要是彌補數組構造函數 Array() 的不足。因為參數個數的不同,導致 Array() 的重載,Array.of 不存在由于參數不同而導致的重載,并且基本上可以用來替代 Array() 或 new Array()。
2. 方法詳情
2.1 基本語法
Array.of() 是創建數組的方法,它接收若干個參數,返回一個新的 Array 實例,類似 Array() 方法。
語法使用:
Array.of(element0[, element1[, ...[, elementN]]])
參數解釋:
| 參數 | 描述 |
|---|---|
| elementN | 數組元素,可以是任意個參數,將按順序成為返回數組中的元素 |
2.2 基本實例
Array.of() 會按順序接受 N 個參數,接收的所有參數都會成為新數組的項。
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined) // [undefined]
Array.of(3).length // 1
3. 對比 Array()
Array.of 的主要作用是彌補 Array() 的不足的,下面我們來看看他們有什么不同。
Array() 會根據接收的參數不同從而返回不同的數組,例如:
Array() // []
Array(3) // [, , ,]
Array(2, 12) // [2, 12]
Array.of() // []
Array.of(3) // [3]
Array.of(2, 12, 'a') // [2, 12, "a"]
Array 方法在沒有參數、一個參數、兩個參數時,返回結果都不一樣。
- 沒有參數的時候返回一個空數組;
- 有一個參數的時候,返回一個長度為此參數的空數組,并且此數組不能被迭代;
- 有兩個參數的時候,才會把參數當成數組的每一項返回;
由于參數的不同 Array 方法會進行重載,而且他們的行為也不一致,Array.of() 方法總會創建一個包含所有傳入參數的數組,而不管參數的數量與類型。
4. 擴展
如果原生不支持的話,可以手動實現一個 Array.of() 方法。
if (!Array.of) {
Array.of = function() {
return Array.prototype.slice.call(arguments);
};
}
使用 Array 的 slice 方法把接收到的 arguments 參數,轉化成數組的每一項。
5. 小結
本章講解了 ES6 的 Array.of() 方法,該方法用于創建數組,主要為了替換 Array() 方法,彌補 Array() 方法的不足。
殺手Kira ·
2025 imooc.com All Rights Reserved |