如果语句在 foreach 循环 javascript 中不起作用

新手上路,请多包涵

我试图从数组中返回第一个大于 25 的值,而不使用其他方法(例如过滤器)。假设数组总是排序的。

该函数总是返回未定义的。为什么会这样?这是代码:

 function checkArr(arr){
  arr.forEach(i => {
    if (i>25) return i;
  })
}

console.log(checkArr([10,20,34,45]))

输出应为 34。

原文由 Elon Musk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 711
2 个回答

当您使用 forEach 时,您为数组中的每个项目执行另一个函数。该函数可以很好地返回一个值,但它会被完全忽略。如果你想在 checkArr 函数中返回一个值,你必须这样做:

 function checkArr(arr) {
  for (let i of arr) {
    if (i>25) return i;
  }
}

原文由 houfio 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 find 函数代替 forEach 。您必须返回此函数的结果才能得到答案,而不是 undefined

 function checkArr(arr) {
  return arr.find(i => i > 25);
}

console.log(checkArr([10,20,34,45]))

forEach 函数不返回任何内容,它只是对数组中的每个元素进行一些操作。

原文由 Daria Pydorenko 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题