2017-04-11 69 views
0

在JavaScript中,從集合創建數組是使用Array.from(collection)完成的,但是從集合創建Set是使用new Set(collection)完成的。是否有這種不對稱的原因?Array.from vs新集

+0

數組是一個非常特殊的「集合」類型? –

回答

1

Array構造函數可以被稱爲在兩個方面:

new Array(n) 

其中n是一個整數。這將創建一個包含n未定義元素的數組。

new Array(e1, e2, e3, ...) 

這將創建一個數組,其元素爲e1e2e3等,類似於編寫

[e1, e2, e3, ...] 

當你調用構造一個說法,如果不是它當作整數第二種格式的情況。這將創建一個數組,其中一個元素的值是參數。

所以如果你做new Array(collection),它會創建一個數組,其第一個元素是集合。改變這個來擴展集合將是一個不兼容的變化,可能會打破一些程序。所以他們定義了一個這樣做的新方法。