【发布时间】:2018-09-04 16:13:47
【问题描述】:
考虑一下这个 python 代码
it = iter([1, 2, 3, 4, 5])
for x in it:
print x
if x == 3:
break
print '---'
for x in it:
print x
它打印1 2 3 --- 4 5,因为迭代器it 记住它在循环中的状态。当我在 JS 中做看似相同的事情时,我得到的只是1 2 3 ---。
function* iter(a) {
yield* a;
}
it = iter([1, 2, 3, 4, 5])
for (let x of it) {
console.log(x)
if (x === 3)
break
}
console.log('---')
for (let x of it) {
console.log(x)
}
我错过了什么?
【问题讨论】:
-
你有一个生成器,它是一次性完成的。 stackoverflow.com/questions/23848113/…
标签: javascript iterator yield