JavaScriptで配列を反復処理し、要素を削除する方法 [重複]について
2023-07-28 22:33:23
質問
私は要素の配列を持っており、そこから特定のものを削除する必要があります。問題は、JavaScriptにはfor eachループがないようで、forループを使用すると、基本的に配列の境界を越えて要素をチェックしようとしたり、インデックスが変更されたために配列内の要素が欠落したりする問題に遭遇することです。私が言っていることをお見せしましょう。
var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = 0; i < elements.length; i++){
if(elements[i] == 5){
elements.splice(i, 1);
}
}
問題は、elements[1]を削除すると、elements[2]がelements[1]になることです。つまり、最初の問題は、いくつかの要素が検査されないということです。もう一つの問題は、.lengthが変化することで、境界をハードコーディングすると、配列の境界を越えて要素を調べようとする可能性があることです。では、この信じられないほど単純なことを行うための最良の方法は何でしょうか?
どのように解決するのですか?
上から順番に見ていきましょう。
var elements = [1, 5, 5, 3, 5, 2, 4];
for(var i = elements.length -1; i >= 0 ; i--){
if(elements[i] == 5){
elements.splice(i, 1);
}
}
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] forループを壊さずに配列をループして項目を削除する
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] ECMAScriptとは?
-
[解決済み] JSHintの'+'前の改行不良の説明
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法