【发布时间】:2017-09-01 19:24:36
【问题描述】:
我已经验证在某些时候第一个 if 条件为真。函数不应该返回 true 并停止执行吗?然而;在这种情况下,即使在第一个 if 条件为 true 之后,函数也会继续执行,直到 forEach 循环完成,然后每次都返回 false 退出。谁能告诉我错误在哪里?
function checkValid(id){
pressedButtons.forEach(button => {
console.log(`ID: ${id} and Button: ${button}`)
if (id == button+1 || id == button+8 || id == button-1 || id == button-8){
console.log("IM HERE")
return true
}
})
return false
}
【问题讨论】:
-
在回调内部返回不会使外部函数返回。
-
使用
Array.prototype.some,它将短路真实值(当然,您仍然必须返回该结果值) . -
.forEach(button => {})位创建一个函数。你是从那个函数返回的,而不是 checkValid。在您的 checkValid 函数中创建一个变量,该变量可以在 forEach 中设置为 true,并在最后返回。 -
谢谢大家。我现在明白了。
标签: javascript return