来自 mozillas js 文档:
for (variable of iterable) {
statement
}
这是 js 中 of 语句的标准,我想做这样的事情:
for (variable of iterable && variable of iterable) {
statement
}
我只需要循环不迭代,然后为每个嵌套的 for of 循环再次迭代。因此,类似的东西非常适合我的需求,但上面的似乎更可取。
我有 2 个数组,我正在尝试迭代它们,并希望创建对象并进一步检查它们的相等性(或其他内容)。
示例场景:
for (variable1 of iterable1 && variable2 of iterable2) {
//code
if (variable1 === variable2){
//do something
}
}
我的代码:
if (_.intersection(selections[i],questions[i].correctAnswer)) {
for (const selection of selections[i]) for (const answer of questions[i].correctAnswer) for(const item of questions[i].qPoints) {
if (selection === answer){
numCorrect += item;
console.log(numCorrect)
}
}
}
}
基本上,我对交集所做的事情是使用 underscoreJS 检查两个数组是否相交。之后,我尝试为每个数组创建对象。首先,检查数组在任何点是否相等,如果是,则将 numCorrect 增加该索引处正确答案的值(qPoints)。问题在于嵌套的 for 循环,我得到了 qPoints 的多个值(由于迭代次数过多)。
最佳答案
您不必使用“for” - 您可以直接访问底层迭代器。
i1 = iterable1.iterator; i2 = iterable2.iterator;
while (!i1.done && !i2.done) {
variable1 = i1.next; variable2 = i2.next;
... do something with the pair
}
关于javascript - 同一语句中的多个 for-of 循环(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47213415/