【发布时间】:2016-02-12 22:53:54
【问题描述】:
我正在使用 ES6 Set 实例,我需要对它们应用一些转换。如果它们是数组,这些转换会很简单。这是一个例子:
let s = new Set;
s.add(1);
s.add(2);
s.add(3);
let n = s.filter(val => val > 1); // TypeError, filter not defined
let n = Array.prototype.filter.call(s, val => val > 1); // []
我希望结果是一个新的 Set 或一个数组。我同样想使用其他数组理解方法,如filter、map、reduce 等。我也希望在 ES6 Map 实例上也有类似的行为。
这可能吗,还是我需要使用 vanilla JS 数组?
【问题讨论】:
-
根据 MDN,没有任何过滤方法,但您可以使用
for (let item of s)来制作自己的过滤方法。 -
顺便说一句,filter、map、reduce 等不是“数组理解方法”——它们只是“数组方法”
-
@JaromandaX 好点。改变了。
标签: javascript arrays set ecmascript-6