如果我有以下的for
循环:
for (var i = 0; i < SomeArrayOfObject.length; i++) {
if (SomeArray[i].SomeValue === SomeCondition) {
var SomeVar = SomeArray[i].SomeProperty;
return SomeVar;
}
}
< p > return
语句会停止函数的执行吗?
return
仍然会从当前函数回调的迭代中返回,在其自己的范围内,但不应该打破整个调用方法forEach()
。因此,它不是从_循环本身_返回,而是从循环执行的回调函数返回。在链接问题的代码示例中,由于存在return
,输出为“1,2,4,5”,跳过了数字3
。 - Michael Berkowskireturn
将始终从当前的this
上下文返回。 - o-obreak
然后再使用return
了。 - NoNameforEach
不是一个循环 - 它是一个具有相当清晰定义的数组方法,因此它并不真正违反return退出循环
规则。 - Drenai