ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で配列の反復に「for...in」ループの使用を避けるべきなのはなぜですか?
JavaScript での配列反復では「for...in」を避ける
JavaScript の「for...in」ループには潜在的な落とし穴がある配列を反復処理するとき。これは適切なアプローチであるように見えますが、予期しない結果につながる可能性があります。
なぜ悪いアイデアなのか
「for...in」ループはプロパティを反復処理します。 、配列内で直接定義されていないものも含みます。これには、配列のプロトタイプから継承されたプロパティ、または動的に追加されたプロパティが含まれます。
たとえば、次のコードを考えてみましょう。
var a = []; // Empty array a[5] = 5; // Resize the array
空の配列を作成したにもかかわらず、その 5 番目のインデックスに値を割り当てると、効果的にサイズが変更されます。配列。
「for...in」を使用して反復する場合:
for (var i in a) { console.log(a[i]); }
ループ次のプロパティを反復処理します:
ただし、継承されたプロパティや、配列に関連しない可能性がある配列オブジェクトに追加された他のプロパティも反復処理される可能性があります。 data.
代わりに、数値ループを使用します
特に配列を反復するには、数値ループを使用します。
for (var i = 0; i < a.length; i++) { console.log(a[i]); }
このループは明示的に反復します。配列の数値インデックスを調べて、期待される値のみがアクセスされるようにします。
以上がJavaScript で配列の反復に「for...in」ループの使用を避けるべきなのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。