为什么Javascript forEach不允许使用break或return提前终止

为什么Javascript forEach不允许使用break或return提前终止,javascript,foreach,Javascript,Foreach,我知道这种行为是众所周知的,并且有很好的记录: 除了通过以下方法之外,没有其他方法可以停止或中断forEach()循环 正在引发异常。如果需要这种行为,可以使用forEach()方法 如果工具不正确,请使用普通循环。如果您正在测试 数组元素,并且需要一个布尔返回值 可以使用every()或some()代替。如果可用,请选择新方法 find()或findIndex()可用于在为true时提前终止 谓词也是 var theSecond=findTheSecond() log('theSecond

我知道这种行为是众所周知的,并且有很好的记录:

除了通过以下方法之外,没有其他方法可以停止或中断forEach()循环 正在引发异常。如果需要这种行为,可以使用forEach()方法 如果工具不正确,请使用普通循环。如果您正在测试 数组元素,并且需要一个布尔返回值 可以使用every()或some()代替。如果可用,请选择新方法 find()或findIndex()可用于在为true时提前终止 谓词也是

var theSecond=findTheSecond()
log('theSecond是:'+theSecond)
函数findTheSecond(){
[1,2,3].forEach(函数(e1){
console.log('Item:'+e1)
如果(e1==2){
返回(e1)
}
});

}
这些函数迭代器方法不会像普通的“for”循环那样“中断”,可能是因为当您想要执行“forEach”时,它们可能认为您有意要为数组中的“每个”值执行某些操作。要在“查找”正确的项目中执行您想要执行的操作,您可以使用“查找”

var theSecond=findTheSecond();
log('theSecond是:'+theSecond)
函数findTheSecond(){
返回(
[1,2,3]。查找(函数(e1){
console.log('Item:',e1);
返回e1==2
})
)

}
这些函数迭代器方法不会像普通的“for”循环那样“中断”,可能是因为当您想要执行“forEach”时,它们可能认为您有意要为数组中的“每个”值执行某些操作。要在“查找”正确的项目中执行您想要执行的操作,您可以使用“查找”

var theSecond=findTheSecond();
log('theSecond是:'+theSecond)
函数findTheSecond(){
返回(
[1,2,3]。查找(函数(e1){
console.log('Item:',e1);
返回e1==2
})
)
}
如有必要,您可以使用捷径

var theSecond=findTheSecond();
log('theSecond是:'+theSecond);
函数findTheSecond(){
var结果;
[1,2,3]。一些(函数(el,i){
console.log('项目:'+el);
如果(i==1){
结果=el;
返回true;
}
});
返回结果;
}
如有必要,您可以使用捷径

var theSecond=findTheSecond();
log('theSecond是:'+theSecond);
函数findTheSecond(){
var结果;
[1,2,3]。一些(函数(el,i){
console.log('项目:'+el);
如果(i==1){
结果=el;
返回true;
}
});
返回结果;

}
这当然是经过深思熟虑的设计决策。。。还有其他的数组方法来处理其他场景…因为它是
forEach
而不是
forEachUntilStopped
。这当然是经过深思熟虑的设计决策。。。还有其他数组方法可以处理其他情况……因为它是
forEach
而不是
forEachUntilStopped
。我将根据您的命令性/功能性评论对此进行推理,这对我来说很有意义。谢谢你的回答。我将根据你的命令性/功能性评论对此进行推理,这对我来说是有意义的。谢谢你的回答。