gpt4 book ai didi

javascript - 返回未定义的数组方法

转载 作者:行者123 更新时间:2023-12-03 08:00:48 24 4
gpt4 key购买 nike

这个我还是不太明白,我有以下情况:

// #2) Check if this array includes any name that has "John" inside of it. If it does, return that 
// name or names in an array.
const dragons = ['Tim', 'Johnathan', 'Sandy', 'Sarah'];

首先我尝试了以下方法:

const name = dragons.forEach(element => {
element.includes("John") ? element : null
});

它返回未定义

然后:

const name = dragons.filter(element => {
element.includes("John");
});

它返回一个空数组

然后:

function name() {
const dragons = ['Tim', 'Johnathan', 'Sandy', 'Sarah'];
dragons.forEach(element => {
if (element.includes("John")) {
return element;
}
});
}

它再次返回未定义

但有趣的是,如果在任何一次尝试中我将要执行的操作更改为 console.log(element); 那么它将显示“Johnathan”,这是正确的输出。

所以这意味着逻辑正在工作,我只是不明白为什么如果我想将其分配给变量,它不会返回值。

我什至尝试了以下方法:

const dragons = ['Tim', 'Johnathan', 'Sandy', 'Sarah'];

dragons.forEach(element => {
if (element.includes("John")) {
const name = element;
}
});

但它再次返回名称为未定义,这是为什么?

编辑:这是我的第一个堆栈溢出问题,真的,我没想到有人会回答我的问题,我想这可能是一个愚蠢的问题,或者我没有很好地解释自己,但很高兴找到这样一个支持社区,非常感谢所有评论和帮助我的人!

最佳答案

forEach 方法确实返回 undefined。但是 filter 相反返回经过过滤的数组。但是,问题是您忘记返回其中的值。

要修复它,请尝试:

const name = dragons.filter(element => {
return element.includes("John");
});

或者:

const name = dragons.filter(element => element.includes("John"));

关于javascript - 返回未定义的数组方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74268374/

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