我具有以下功能
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语句
答案 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)