gpt4 book ai didi

javascript - 根据 Symbol ES6 中的可用性重复调用

转载 作者:行者123 更新时间:2023-12-03 00:13:47 25 4
gpt4 key购买 nike

我使用的是 ES6 符号迭代器,当我迭代时,我需要每次调用下一个函数来打印下一个项目

这是我的代码:

var title = "Omkar";
var iterateIt = console.log(typeof title[Symbol.iterator]);
var iterable = title[Symbol.iterator]();

do {
console.log(iterable.next().value);
} while (iterable.done)

它只打印O

但是如果我再执行 4 次 console.log(iterable.next().value); 我就会得到值假设我有包含更多字符的字符串示例-“Chewbacca”,那么我必须在同一个控制台上执行 9 次。为什么我每次都必须调用下一个,而我上面的逻辑说,虽然它还没有完成,但获取下一个值。如果有什么办法请告诉。

最佳答案

.done 属性位于通过调用可迭代对象返回的对象上,而不是可迭代对象本身:

var title = "Omkar";
var iterable = title[Symbol.iterator]();

let value, done;
do {
({ value, done } = iterable.next());
if (!done) console.log(value);
} while (!done)

您可能会发现使用 for..of 循环更方便:

var title = "Omkar";
for (const char of title) {
console.log(char);
}

关于javascript - 根据 Symbol ES6 中的可用性重复调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com