forEach ループ中の配列要素の変更
JavaScript では、forEach メソッドを使用して配列を反復処理するときに、イライラすることがあります。ループ内の個々の要素に加えられた変更は、元の配列には反映されません。これは、forEach が実際の要素への参照ではなく、要素のコピーをコールバック関数に渡すためです。
反復関数から配列要素への書き込みアクセスを有効にするには、2 つのオプションがあります:
オプション 1: 3 番目の引数として配列を指定する
forEach メソッドはオプションの 3 番目の引数を受け取ります。配列自体を表します。コールバック内の配列の対応するインデックスに新しい値を割り当てると、元の配列が変更されます。
arr.forEach(function(part, index, theArray) { theArray[index] = "hello world"; });
オプション 2: バインドされたアロー関数を使用する
望ましい動作を実現するもう 1 つの方法は、アロー関数をコールバックとして使用し、配列を this として提供することです。 context:
arr.forEach(function(part, index) { this[index] = "hello world"; }, arr); // use arr as this
コールバックで配列をこのように設定すると、要素に加えられた変更が元の配列に直接適用されます。
追加の考慮事項:
以上がJavaScript の「forEach」ループ内の配列要素を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。