动态

详情 返回 返回

ES6彌補了數組的缺陷,請使用Array.of()方法 - 动态 详情

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 头像 zaotalk 头像 longlong688 头像 zero_dev 头像 solvep 头像 yuzhihui 头像 nznznz 头像 Poetwithapistol 头像 hea1066 头像 weishiledanhe 头像 congjunhua 头像 54r9rxzy 头像
点赞 52 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.