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来测试是否至少存在一个小于10的元素。当找到与您的函数匹配的某个元素时,它将停止循环:

var hasValueLessThanTen = myArray.some(function (val) { 
  return val < 10;
});
链接地址: http://www.djcxy.com/p/70039.html

上一篇: Break statement in javascript array map method

下一篇: how to stop Javascript forEach?