2017-04-11 64 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),它会创建一个数组,其第一个元素是集合。改变这个来扩展集合将是一个不兼容的变化,可能会打破一些程序。所以他们定义了一个这样做的新方法。