0

定義によると、for-in ループはオブジェクトのプロパティをループするために使用されますが、配列の要素をループするのはなぜですか?

var arr = ['a','b','c'], indexes = [];

 Array.prototype.each = function() {/*blah*/};

 for (var index in arr) {
  indexes.push(index);
}
indexes; //["0", "1", "2", "each"]

0,1,2 が列挙されているのはなぜですか?それらはプロパティではありません

4

5 に答える 5

0

for inループは、値ではなくキーを反復します。したがって、値ではなく配列インデックス0、1、2を与えています。

このようにすることもできますがfor in、配列で a を使用するのは悪い習慣です。

for (var index in arr) {
    indexes.push(arr[index]);
}

通常のforループを使用する必要があります

for (var i = 0; i < arr.length; i++) {
    indexes.push(arr[i]);
}
于 2013-03-31T16:29:37.790 に答える