亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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);
  };
}

使用 Arrayslice 方法把接收到的 arguments 參數,轉化成數組的每一項。

5. 小結

本章講解了 ES6 的 Array.of() 方法,該方法用于創建數組,主要為了替換 Array() 方法,彌補 Array() 方法的不足。