是否在JavaScript中设置哈希集合?

是否在JavaScript中设置哈希集合?,javascript,collections,set,ecmascript-6,Javascript,Collections,Set,Ecmascript 6,我在问自己这个问题是JavaScript中的哈希集合吗? 例如,Set.prototype.has将迭代整个Set或其实现是否使用内部哈希表来定位集合中的项 不需要特定的实现,但它确实表明它应该优于O(n)(因此优于线性查找)。而且,由于Set对象的目的是高效地查找集合中的项,因此它肯定会使用某种高效的查找系统,如散列 如果你想知道它是如何工作的,你必须看看Firefox或Chrome实现的开源代码 您还可以对其进行基准测试,以证明查找速度不是O(n),而是比这更有效的方法。不需要特定的实现,但

我在问自己这个问题是JavaScript中的哈希集合吗?

例如,
Set.prototype.has
将迭代整个
Set
或其实现是否使用内部哈希表来定位集合中的项

不需要特定的实现,但它确实表明它应该优于
O(n)
(因此优于线性查找)。而且,由于
Set
对象的目的是高效地查找集合中的项,因此它肯定会使用某种高效的查找系统,如散列

如果你想知道它是如何工作的,你必须看看Firefox或Chrome实现的开源代码

您还可以对其进行基准测试,以证明查找速度不是
O(n)
,而是比这更有效的方法。

不需要特定的实现,但它确实表明它应该优于
O(n)
(因此优于线性查找)。而且,由于
Set
对象的目的是高效地查找集合中的项,因此它肯定会使用某种高效的查找系统,如散列

如果你想知道它是如何工作的,你必须看看Firefox或Chrome实现的开源代码


您还可以对其进行基准测试,以证明查找速度不是
O(n)
,而是比这更有效的东西。

ECMAScript 2015规范:

Set对象必须使用哈希表或其他机制实现,这些机制平均提供的访问时间与集合中的元素数呈次线性关系


显然,他们无法强制特定的JS引擎实际执行此操作,但实际上JS引擎将执行正确的操作。

ECMAScript 2015规范:

Set对象必须使用哈希表或其他机制实现,这些机制平均提供的访问时间与集合中的元素数呈次线性关系


显然,他们无法强制特定的JS引擎实际执行此操作,但实际上JS引擎将执行正确的操作。

感谢您的努力!我相信这是一个简单的问题,但值得与社区分享这个问题,因为知道
Set
可以是一个散列集合,当我们需要检查元素是否存在或其他常见操作时,可以在数组上使用它们,这非常有趣感谢您的努力!我相信这是一个简单的问题,但值得与社区分享这个问题,因为当我们需要检查元素是否存在或其他常见操作时,
Set
可以是一个散列集合,在数组上使用它们