我试图将回报放入我的foreach,但它回报了undefined。但是当我将相同的if语句放入 a 中时for loop,它会返回正确的值。为什么会发生这种情况?
this.SpriteAndHull.forEach(element => {
if (element.name == name) {
return element;
}
});
Run Code Online (Sandbox Code Playgroud)
使用时,.forEach()您的return语句从传递到 forEach 回调的函数返回,而不是从外部函数返回。
编辑:应该注意的是,从.forEach()函数返回不会执行任何操作,因为.forEach()(根据设计)不支持返回值并且将始终返回undefined
您可以做的一件事是设置元素然后返回它,或者简单地使用不同的迭代器函数,如下所示:
function getElementByName(elems, name) {
let elem;
elems.forEach(element => {
if (element.name === name) {
elem = element;
}
});
return elem;
}
Run Code Online (Sandbox Code Playgroud)
或者:
function getElementByName(elems, name) {
return elems.find(element => element.name === name);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |