forEach 函数返回未定义
原始代码:
提供的代码定义了一个函数, getByKey,旨在搜索对象数组中的特定值并返回相应的键或消息表明无法找到该值。但是,该函数始终返回未定义。
function getByKey(key) { data.forEach(function (i, val) { if (data[val].Key === key) { return data[val].Key; } else { return "Couldn't find"; } }); }
理解问题:
此代码的问题在于 forEach 循环中 return 语句的范围。 return 语句退出循环,而不是 getByKey 函数本身。要从函数返回一个值,应将其放置在循环之外。
解决方案:
解决此问题的一种方法是将返回值分配给循环内的变量,然后从函数中返回它。
function getByKey(key) { var result; data.forEach(function (val) { if (val.Key === key) { result = val.Key; } }); return result; }
或者,您可以使用普通的 for 循环而不是 forEach 和直接从循环内的函数返回。
function getByKey(key) { for (var i = 0; i < data.length; i++) { if (data[i].Key === key) { return data[i].Key; } } }
以上是为什么我的'forEach”函数在 JavaScript 中返回'undefined”?的详细内容。更多信息请关注PHP中文网其他相关文章!