我可以这样做:
:
但是'next'变量显得笨拙。有更好的方法吗?
当我检查mySet对象时,我看到带有数组值的[[Entries]]键,但是我将如何访问它?
答案 0 :(得分:1)
您可以使用while(!next.done)
,并且每次迭代只想使用next()
。
要弄清它是否是最后一个值,请将值存储在变量中,然后重新分配next
,然后在处理值之前检查done
function* myGen(arr) {
let i = -1;
while (++i < arr.length) {
yield arr[i] * 2;
}
}
const it = myGen([1, 2, 3]);
let next = it.next();
while (!next.done) {
const val = next.value;
next = it.next();
console.log('value:', val, ' is last = ', next.done);
}
console.log('done:', next.done)
答案 1 :(得分:0)
“ ... next()方法将返回具有两个属性的对象:value,即序列中的下一个值;以及 done,如果已消耗了序列中的最后一个值,则为true。 / strong>”
您的方法没有错。