在javascript数组映射方法中的break语句

可能重复:
如何短路Array.forEach像调用break?

有没有办法让我可以在满足条件后突破数组映射方法? 我尝试了以下抛出"Illegal Break Statement" Error. 这是我想出的一个随机的例子。

 var myArray = [22,34,5,67,99,0]; var hasValueLessThanTen = false; myArray.map(function (value){ if(value<10){ hasValueLessThanTen = true; break; } } ); 

我们可以使用for循环,但我想知道我们是否可以完成相同的使用map方法?

这不可能使用内置的Array.prototype.map 。 但是,如果您不打算map任何值,则可以使用简单的for -loop代替:

 var hasValueLessThanTen = false; for (var i = 0; i < myArray.length; i++) { if (myArray[i] < 10) { hasValueLessThanTen = true; break; } } 

或者,如@RobW ,使用Array.prototype.some来testing是否至less存在一个小于10的元素。当find与你的函数匹配的元素时,它将停止循环:

 var hasValueLessThanTen = myArray.some(function (val) { return val < 10; });