我试图从数组中返回第一个大于 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 许可协议
我试图从数组中返回第一个大于 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 许可协议
您可以使用 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 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
当您使用
forEach
时,您为数组中的每个项目执行另一个函数。该函数可以很好地返回一个值,但它会被完全忽略。如果你想在checkArr
函数中返回一个值,你必须这样做: