167

重複の可能性:
break を呼び出すように 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

4

1 に答える 1

216

組み込みの を使用することはできません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 未満の要素が少なくとも 1 つ存在するかどうかをテストします。関数に一致する要素が見つかると、ループが停止します。

var hasValueLessThanTen = myArray.some(function (val) { 
  return val < 10;
});
于 2012-09-04T09:32:50.847 に答える