我有一个对象的数组,似乎没有更新。关于Javascript数组我不知道什么?
http://stackoverflow.pastebin.com/aqZtRkkf
长度报告为0,它将数组显示为空,但是console.log将其显示为具有数组索引!
我不了解这些数组?
感谢您的时间! :+ d
答案 0 :(得分:6)
this.Hats[ "Red" ] = new Hat( oPar, "red" )
this.Hats[ "Yellow" ] = new Hat( oPar, "yellow" );
这就是你的问题所在。您没有将数组用作数组,只是将它用作对象,设置属性Hats.Red和Hats.Yellow而不是填充数组索引。
试试这个:
this.Hats.push( new Hat( oPar, "red" ) );
this.Hats.push( new Hat( oPar, "yellow" ) );
答案 1 :(得分:1)
您正在使用关联数组。这种类型的数组允许您为每个数组成员定义一个键。以这种方式使用数组意味着没有可以遍历成员的索引值,而是可以使用for (var i in object)
。
for (var key in test.People["Fred"].Hats) {
console.log(key);
}