阅读完整的ES6 Compatibility table。刚开始Set()
。
const set = new Set();
set.add('foo');
set.add('baz');
const iterator = set.values();
iterator.next(); // { value: "foo", done: false }
iterator.next(); // { value: "baz", done: false }
是否可以编写类似于
iterator.next()
的方法,但是它向后而不是向前迭代(即iterator.previous()
)? 最佳答案
values()
返回一个迭代器对象,并且不可能向后进行迭代,因为JavaScript迭代器对象可以是无限的。例如,考虑一下
function * Counter() {
"use strict";
var i = 0;
while (1) {
yield i++;
}
}
现在,您可以使用
Counter()
创建一个迭代器,并且该迭代器将永远不会结束。因此,通常,使用迭代器不是向后选择的。如果非常需要backIterator之类的东西,则必须维护迭代器产生的值,然后根据
next
调用来回移动。