[解決済み] foreach時に配列の値を変更する
2022-03-22 16:41:53
質問
の例です。
var arr = ["one","two","three"];
arr.forEach(function(part){
part = "four";
return "four";
})
alert(arr);
配列は元の値のままですが、反復処理関数から配列の要素に書き込みアクセスする方法はありますか?
どのように解決するのですか?
コールバックには、要素、インデックス、および配列そのものが渡されます。
arr.forEach(function(part, index, theArray) {
theArray[index] = "hello world";
});
編集
- コメントで指摘されているように
.forEach()
関数は第二引数を取ることができ、その値は
this
は、コールバックの各呼び出しで
arr.forEach(function(part, index) {
this[index] = "hello world";
}, arr); // use arr as this
その2番目の例では
arr
として設定されている。
this
に含まれる配列が、コールバックの中にあると考えるかもしれません。
.forEach()
の呼び出しは、もしかしたら
デフォルト
の値です。
this
が、何らかの理由でそうなっていない。
this
になります。
undefined
第二引数がない場合
(注意: 上記の
this
は、コールバックが
=>
関数を使用します。
this
は、そのような関数が呼び出されたときに何かに束縛されることはありません)。
また、Array プロトタイプには似たようなユーティリティがたくさんあり、Stackoverflow にはある関数や別の関数について多くの質問が寄せられているので、最適な解決策は単に別のツールを選ぶことだということを覚えておくことが大切です。あなたは持っています。
-
forEach
配列の各エントリに対して何かを行う。 -
filter
指定された項目のみを含む新しい配列を作成します。 -
map
既存の配列を変換して、一対一の新しい配列を作成します。 -
some
配列の少なくとも1つの要素がある説明に適合するかどうかをチェックする。 -
every
を使用して すべて のエントリが説明と一致します。 -
find
配列の中の値を探す
などがあります。 MDNリンク
関連
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] オブジェクトの配列から、プロパティの値を配列として取り出す。
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
Vue+ElementUIによる大規模なフォームの処理例
-
JavaScriptのクロージャの説明
-
Vueの「データを聴く」原則を解説
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法