javascript - 函数未返回预期结果

标签 javascript

我编写了一个函数来搜索数组并记录一个数字(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回调不是 returnsearchNumber功能。forEach对每个数组元素执行一次提供的函数,所以 return ele里面会像 returnforEach 中提供的函数.
它不代表 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/

相关文章:

javascript - 使用 Node.js 时 ImageMagick 裁剪尺寸不正确

javascript - jquery函数中的不同值

javascript - iframe 的问题

javascript - Websockets 代理并与 IIS Web 服务器同时使用端口 443

javascript - 自动将 css/js 内容放入 1 个文件中

Javascript 作用域问题

c# - 如何在 gridView asp.net 中制作 X 滚动?

javascript - 如何用javascript包装重复的html block ?

javascript - 鼠标拖动后无法仅显示 3 个缩略图

javascript - 自动完成谷歌地图