ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で「forEach」を使用しているときに配列値を変更できますか?

JavaScript で「forEach」を使用しているときに配列値を変更できますか?

DDD
リリース: 2024-11-09 04:58:02
オリジナル
413 人が閲覧しました

Can You Modify Array Values While Using `forEach` in JavaScript?

forEach による反復中の配列値の変更

JavaScript では、forEach メソッドを使用して配列の要素を反復処理できます。ただし、デフォルトでは、反復コールバック関数内で配列の値を変更することはできません。

次の例を考えてみましょう。

var arr = ["one", "two", "three"];

arr.forEach(function(part) {
  part = "four";
  return "four";
});

alert(arr); // Output: ["one", "two", "three"]
ログイン後にコピー

ご覧のとおり、配列 arr は forEach の後も変更されません。ループ。これは、forEach コールバック関数が実際の要素への参照ではなく、配列要素のコピーのみを受信するためです。

解決策: 実際の要素へのアクセス

反復中に配列の値を変更するには、次のようにします。実際の要素にアクセスする必要があります。これを行うには、以下に示すように、コールバック関数に 3 番目のパラメーター (配列ポインター) を渡します。

arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});
ログイン後にコピー

この例では、theArray は配列ポインターです。これを使用して、現在のインデックスにある実際の要素にアクセスして変更できます。

これを配列ポインタとして使用する

あるいは、forEach メソッドの 2 番目の引数を使用して、この値を指定することもできますコールバック関数の場合。この値は、配列ポインター自体になります。

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // Array must be passed as `this`
ログイン後にコピー

どちらのアプローチでも、forEach メソッドを使用して配列を反復処理しながら、配列の値を変更できます。

以上がJavaScript で「forEach」を使用しているときに配列値を変更できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート