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()
方法的不足。