在javascript中的数组map方法中使用的break语句

10 浏览
0 Comments

在javascript中的数组map方法中使用的break语句

这个问题在此之前已经有了答案

可能是重复问题:

如何像调用break一样中断Array.forEach?

是否有一种方式可以在满足条件后跳出数组映射方法?我尝试了以下方法,但会抛出\"Illegal Break Statement\"错误。这是我随机想出的一个例子。

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

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

admin 更改状态以发布 2023年5月24日
0
0 Comments

使用内置的 Array.prototype.map 不可能实现。但是,如果您不打算 map 任何值,您可以使用简单的 for 循环代替:

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;
});

0