ホームページ > ウェブフロントエンド > jsチュートリアル > ループ中に JavaScript で配列項目を安全に削除するにはどうすればよいですか?

ループ中に JavaScript で配列項目を安全に削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-26 06:54:10
オリジナル
303 人が閲覧しました

How to Safely Remove Array Items in JavaScript While Looping?

配列のループと中断なしの項目の削除

JavaScript では、splice() メソッドを使用して配列から項目を削除すると、多くの場合、未定義の値を検出することなく配列を反復処理するという課題。提供されたコードでは、for ループ内で splice() を使用すると、オークション アイテムの秒プロパティが未定義になり、エラーが発生します。

この問題を解決するには、次の代替案を検討してください。

1. splice() 後のループ インデックスのデクリメント

splice() を使用して項目を削除した後、ループ インデックス (i) をデクリメントして、配列の再インデックスを補うことができます。これにより、次の反復が正しいインデックスから継続されることが保証されます。

for (i = 0, len = Auction.auctions.length; i < len; i++) {
    auction = Auction.auctions[i];
    Auction.auctions[i]['seconds'] --;
    if (auction.seconds < 0) { 
        Auction.auctions.splice(i, 1);
        i--; // Decrement the loop index
    }           
}
ログイン後にコピー

2.逆に反復する

配列を逆順に反復することにより、splice() 後のインデックスの再作成は反復内の残りの項目に影響を与えません。

var i = Auction.auctions.length
while (i--) {
    ...
    if (...) { 
        Auction.auctions.splice(i, 1);
    } 
}
ログイン後にコピー

を採用することでこれらのアプローチの 1 つを使用すると、未定義値の問題が発生することなく配列を効率的に反復処理して項目を削除でき、ループ プロセスの整合性を確保できます。

以上がループ中に JavaScript で配列項目を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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