JS array.map()返回未定义

时间:2020-08-19 08:56:55

标签: javascript arrays loops foreach

我具有以下功能

function findNeedle(array) {
    array.forEach(element => {
        if(element === 'needle') {
            console.log('needle') // needle
            return 'needle'
        }
    });
}
const needle = findNeedle(['hay', 'junk', 'hay', 'hay', 'moreJunk', 'needle', 'randomJunk'])
console.log(needle)

我不太了解为什么我的函数返回未定义。我尝试使用forEach,但仍然遇到相同的问题。奇怪的是,执行返回“ needle”之前的console.log语句

2 个答案:

答案 0 :(得分:1)

您必须执行此操作 因为它将针返回到forEach函数而不是findNeedle函数

祝你有美好的一天,如果有任何疑问发表评论

function findNeedle(array) {
var answer;
    array.forEach(element => {
        if(element === 'needle') {
            console.log('needle') // needle
            answer= 'needle'
        }
    });
return answer
}
const needle = findNeedle(['hay', 'junk', 'hay', 'hay', 'moreJunk', 'needle', 'randomJunk'])
console.log(needle) //undefined

答案 1 :(得分:-2)

必须在函数内返回数组,否则将导致undefined。像这样:

function findNeedle(array) {
    return array.forEach(element => {
        // ....
}

但是此代码中还有其他错误。

我不确定您要达到的目标,这可以帮助您吗?

function findNeedle(arr) {
    return arr.map((element, index) => {
        if(element === 'needle') {
            return index;
        }
    });
}
let needle = findNeedle(['hay', 'junk', 'hay', 'hay', 'moreJunk', 'needle', 'randomJunk']);
console.log(needle)