Javascript 是否支持集合(仅包含唯一对象的列表)?
我找到了这个链接,但我记得不是每个浏览器都支持 JS 中的 foreach。
Javascript 是否支持集合(仅包含唯一对象的列表)?
我找到了这个链接,但我记得不是每个浏览器都支持 JS 中的 foreach。
你的钥匙是弦吗?
每个 JavaScript 对象都是一个映射,这意味着它可以表示一个集合。
如您提到的页面所示,每个对象将仅接受每个键(属性名称)的一个副本。键/属性的值无关紧要。
jshashtable将允许您将任何对象存储为键,并使用与您提供的链接中相同的模式。此外,它还提供了一种获取键数组的方法,然后您可以对其进行迭代。它还具有良好的跨浏览器支持,因此可以很好地适应任何环境。
现在有了 ES6(和 corejs 之类的polyfills /shims ),你就拥有了它们:
例子:
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 是必需的,因为旧浏览器不支持它,因此如果您只针对最新浏览器,则可以忽略它。
您可能还记得Array.forEach()
旧的 Opera 和所有 IE 浏览器确实不支持它——for (var x in ...)
据我所知,它是“本机”JS 的一部分,并且被所有浏览器支持。