Stories

Detail Return Return

ES6彌補了數組的缺陷,請使用Array.of()方法 - Stories Detail

Array.of() 主要是彌補數組構造函數 Array() 的不足。因為參數個數的不同,導致 Array() 的重載,Array.of 不存在由於參數不同而導致的重載,並且基本上可以用來替代 Array() 或 new Array()

Array.of()  靜態方法通過可變數量的參數創建一個新的 Array 實例,而不考慮參數的數量或類型

官方解釋

基本語法

Array.of() 是創建數組的方法,它接收若干個參數,返回一個新的 Array 實例,類似 Array() 方法

Array.of(參數0,[, 參數1[, ...[, 參數N]]])

基本實例

Array.of() 會按順序接受 N 個參數,接收的所有參數都會成為新數組的項

Array.of() // [] 
Array.of(undefined) // [undefined] 
Array.of(0) // [0] 
Array.of(1, 2, 3) // [1, 2, 3]

Array.of總是返回參數值組成的數組。如果沒有參數,

重點比較

Array()               // []
Array(2)              // [, ,]
Array(1, 2)          // [1, 2]

Array.of()            // []
Array.of(2)           // [2]
Array.of(1, 2, 'abc')  // [1, 2, "abc"]

Array 方法在沒有參數、一個參數、兩個參數時,返回結果都不一樣。

  • 沒有參數的時候返回一個空數組;
  • 有一個參數的時候,返回一個長度為此參數的空數組,並且此數組不能被迭代;
  • 有兩個參數的時候,才會把參數當成數組的每一項返回;
這就是用Array.of生成數組的好處

擴展

if (!Array.of) {
  Array.of = function() {
    return Array.prototype.slice.call(arguments);
  };
}

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

user avatar dingtongya Avatar zaotalk Avatar longlong688 Avatar zero_dev Avatar solvep Avatar yuzhihui Avatar nznznz Avatar Poetwithapistol Avatar hea1066 Avatar weishiledanhe Avatar congjunhua Avatar 54r9rxzy Avatar
Favorites 52 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.