我想使用 forEach 数组方法作为生成器内的循环,而不是 for。
所以相反:
function* someFunction() {
for (let i = 0; i < someArray.length; i++) yield someArray[i];
}
我想要这样的东西:
function* someFunction() {
someArray.forEach((a) => {yield a});
}
问题:在普通函数(例如“forEach”)中不允许使用yield isn't
所以问题:绕过这个问题的最佳和优雅的方法是什么。
最佳答案
I want to use
forEach
array method as cycle inside generator instead of for.
不,你不知道。
你不这样做是因为你不能。这实际上是不可能的。不要尝试。
您可能想要做什么来缩短for
循环以使其更加简洁,尤其是当您已经有一个数组或迭代器时。
简单的解决方案是使用 yield*
:
function* someFunction () {
yield* someArray
}
yield*
会将迭代委托(delegate)给您使用它的可迭代对象,并且比尝试使用 .forEach
更加简洁。
关于JavaScript 生成器、函数* 和数组方法 forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336147/