ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の「forEach」ループ内の配列要素を変更するにはどうすればよいですか?

JavaScript の「forEach」ループ内の配列要素を変更するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-08 18:06:02764ブラウズ

How to Modify Array Elements Inside a JavaScript `forEach` Loop?

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

コールバックで配列をこのように設定すると、要素に加えられた変更が元の配列に直接適用されます。

追加の考慮事項:

  • 上記の手法は、通常の関数 (関数宣言または式) を関数として使用する場合には機能しません。 callback.
  • ループ中に配列の長さを変更する場合は、意図しない結果を避けるために、forEach の代わりに従来の for ループを使用する必要があります。
  • 他の配列反復メソッド (フィルター) に精通していること、マップなど)は、各タスクに最適なツールを選択するのに役立ちます。

以上がJavaScript の「forEach」ループ内の配列要素を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。