8

Javascript 是否支持集合(仅包含唯一对象的列表)?

我找到了这个链接,但我记得不是每个浏览器都支持 JS 中的 foreach。

4

4 回答 4

6

你的钥匙是弦吗?

每个 JavaScript 对象都是一个映射,这意味着它可以表示一个集合。

如您提到的页面所示,每个对象将仅接受每个键(属性名称)的一个副本。键/属性的值无关紧要。

于 2010-12-27T14:47:39.247 回答
4

jshashtable将允许您将任何对象存储为键,并使用与您提供的链接中相同的模式。此外,它还提供了一种获取键数组的方法,然后您可以对其进行迭代。它还具有良好的跨浏览器支持,因此可以很好地适应任何环境。

于 2010-12-27T14:49:24.913 回答
2

现在有了 ES6(和 corejs 之类的polyfills /shims ),你就拥有了它们:

设置 - JavaScript | MDN

例子:

var mySet = new Set([1, 2, 3, 2, 1]);  // => [1, 2, 3]
console.log(mySet.size);
console.log(mySet.has(3));
mySet.forEach(function(x){console.log(x)});

Polifill 是必需的,因为旧浏览器不支持它,因此如果您只针对最新浏览器,则可以忽略它。

于 2016-10-18T04:38:00.490 回答
0

您可能还记得Array.forEach()旧的 Opera 和所有 IE 浏览器确实不支持它——for (var x in ...)据我所知,它是“本机”JS 的一部分,并且被所有浏览器支持。

于 2010-12-27T14:58:19.737 回答