我编写了一个函数来搜索数组并记录一个数字(x)(如果找到)。下面的代码按预期工作,并记录了 1。
let myArr = [54, 23, 499, 342, 1, 44];
let x = 1;
let searchNumber = (arr) => {
arr.forEach(ele => {
if (ele == x) {
console.log(ele);
}
})
};
searchNumber(myArr);
我现在想返回分配给变量 x 的数字。期望 y 被分配 499,但是当我记录 y 时它返回未定义。我哪里错了?let myArr = [54, 23, 499, 342, 1, 44];
let x = 499;
let searchNumber = (arr) => {
arr.forEach(ele => {
if (ele == x) {
return ele;
}
})
};
let y = searchNumber(myArr);
最佳答案
return ele
里面 forEach
回调不是 return
的searchNumber
功能。forEach
对每个数组元素执行一次提供的函数,所以 return ele
里面会像 return
到 forEach
中提供的函数.
它不代表 return
到主要功能。
在这种情况下,最好使用 for
环形。
let myArr = [54, 23, 499, 342, 1, 44];
let x = 499;
let searchNumber = (arr) => {
for (let i = 0; i < arr.length; i ++) {
if (arr[i] == x) {
return arr[i];
}
}
};
let y = searchNumber(myArr);
console.log(y);
关于javascript - 函数未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64593053/