gpt4 book ai didi

Javascript ES6 迭代器协议(protocol)和 forEach

转载 作者:行者123 更新时间:2023-11-30 07:53:29 24 4
gpt4 key购买 nike

目前我正在提高我的 ES6 技能。我正在研究迭代器/生成器语法。我有一个

的工作示例

class Library {
constructor(){
this._books = [];
}
addBook(book){
this._books.push(book);
}
get books() {
return this._books;
}
*[Symbol.iterator]() {
for(let i=0; i<this._books.length; i++) {
yield this._books[i];
}
}
}

l = new Library();
l.addBook("Book1");
l.addBook("Book2");

for(let book of l){
console.log(book);
}

一切正常的地方。但我的第一个方法是尝试类似

*[Symbol.iterator]() {
this._books.forEach(
book => yield book
)
}

(显然)这是不正确的。除了使用 forwhile 循环之外,还有更简洁的方法来编写此代码吗?

最佳答案

我会用 yield* 来做:

    *[Symbol.iterator]() {
yield* this._books;
}

关于Javascript ES6 迭代器协议(protocol)和 forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47231318/

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