首页 > web前端 > js教程 > 正文

为什么我的'forEach”函数在 JavaScript 中返回'undefined”?

Patricia Arquette
发布: 2024-11-11 17:06:03
原创
1018 人浏览过

Why Does My `forEach` Function Return `undefined` in JavaScript?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板