Javascript数组长度不变

时间:2010-12-12 21:00:25

标签: javascript arrays

我有一个对象的数组,似乎没有更新。关于Javascript数组我不知道什么?

http://stackoverflow.pastebin.com/aqZtRkkf

长度报告为0,它将数组显示为空,但是console.log将其显示为具有数组索引!

我不了解这些数组?

感谢您的时间! :+ d

2 个答案:

答案 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" ) );

The push function in javascript

答案 1 :(得分:1)

您正在使用关联数组。这种类型的数组允许您为每个数组成员定义一个键。以这种方式使用数组意味着没有可以遍历成员的索引值,而是可以使用for (var i in object)

for (var key in test.People["Fred"].Hats) {
    console.log(key);
}