Подтвердить что ты не робот

Оператор break в методе карты массива javascript

Возможный дубликат:
Как закорачивать Array.forEach как перерыв вызова?

Есть ли способ, чтобы я мог выйти из метода карты массива после выполнения моего условия? Я попробовал следующее, которое выбрасывает "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?

4b9b3361

Ответ 1

Это невозможно с помощью встроенного Array.prototype.map. Однако вместо простого for -loop вы можете использовать map любые значения:

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