相关疑难解决方法(0)

for..of和迭代器状态

考虑一下这个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
Run Code Online (Sandbox Code Playgroud)

它会打印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)
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

javascript iterator yield

6
推荐指数
2
解决办法
114
查看次数

标签 统计

iterator ×1

javascript ×1

yield ×1