Javascript JS array.map()返回未定义的

Javascript JS array.map()返回未定义的,javascript,arrays,loops,foreach,Javascript,Arrays,Loops,Foreach,我有以下功能 函数findNeedle(数组){ array.forEach(元素=>{ 如果(元素==‘针’){ console.log('needle')//needle 返回“针” } }); } 常数针=findNeedle(['hay','junk','hay','hay','moreJunk','needle','randomJunk'])) console.log(指针)必须在函数中返回数组,否则将导致未定义。像这样: function findNeedle(array) {

我有以下功能

函数findNeedle(数组){
array.forEach(元素=>{
如果(元素==‘针’){
console.log('needle')//needle
返回“针”
}
});
}
常数针=findNeedle(['hay','junk','hay','hay','moreJunk','needle','randomJunk']))

console.log(指针)
必须在函数中返回数组,否则将导致
未定义
。像这样:

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)
你必须这样做 因为它将指针返回到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

只需在数组之前添加
return
。forEach
@Rado
。forEach()
返回未定义的,所以这不会像Rado所说的那样起作用,但也会更改数组。forEach
返回到
array.map
为什么不使用
find()
.forEach
将返回
未定义的
,因此不会有太大变化