2

object のように任意の配列をループするには forEach() メソッドを使うと言われていますが、ここでは

Array.prototype.forEach.call({1:"a",2:"b"},function(eleVal,ele){alert(eleVal+":"+ele)})

上記のコードは機能しません。なぜですか??

4

3 に答える 3

3

オブジェクトにプロパティを追加する.lengthと、機能します。

インデックスは 0 から始まるため、最初の要素は未定義になることに注意してください。

[].slice.call({1: 'a', 2: 'b', length: 3})
[undefined × 1, "a", "b"]
于 2013-06-19T12:05:21.367 に答える
1

それを行う別の方法。元のオブジェクトを変更しないので、私はこれを好みます。

var obj = {1:"a", 2:"b"};
for(var i in obj) { if(obj.hasOwnProperty(i)) console.log(i + ':' + obj[i]); }
于 2013-06-19T12:16:56.283 に答える