gpt4 book ai didi

javascript - 对于 vs forEach 问题

转载 作者:行者123 更新时间:2023-11-30 12:35:37 25 4
gpt4 key购买 nike

如果 for 和 forEach 都是同步的,为什么在这种情况下 forEach 循环不起作用并且总是返回 false?我一直在想现在早上太早了,我犯了一个明显的错误。两种情况都说他们找到了匹配项:

var items = [{
Code: 'BLAH',
ItemID: 'FOO'
}];

console.log(findItem('BLAH')); // FOO
console.log(findItem2('BLAH')); // false

function findItem(sku) {
for(var i in items) {
if(items[i].Code === sku) {
console.log('Match found - for'):
return items[i].ItemID;
}
}
return false;
}

function findItem2(sku) {
items.forEach(function(item) {
if(item.Code === sku) {
console.log('Match found - forEach'):
return item.ItemID;
}
});
return false;
}

最佳答案

您传递给 .forEach() 的回调中的 return 只是终止该函数调用,而不是“findItem2”调用。换句话说,.forEach() 机制本身已经调用了您传递给它的函数,而您的 return 语句只是从中返回;整个过程仍在继续。没有什么会关注您返回的值(value)。

在这种情况下,普通的 for 循环可能更清晰一些。某些函数框架可能会提供类似 .forEach() 的功能,专门用于定位满足给定条件的列表中的第一个元素。

关于javascript - 对于 vs forEach 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168455/

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