1. ホーム
  2. javascript

[解決済み] javascriptの配列mapメソッドでのBreak文【重複】。

2022-04-24 21:32:55

質問

<余談
この質問には、すでにここで回答があります :
クローズド 9年前 .

重複の可能性あり。

Array.forEachをbreak呼び出しのように短絡させるには?

条件を満たした後に、array map メソッドから抜け出す方法はありますか?以下のように試しましたが、これはスローされます。 "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 . しかし、単純な for -ループを使用しない場合は、代わりに 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;
});