JavaScript数组长度方法

时间:2011-03-17 02:21:03

标签: javascript arrays

任何人都可以解释为什么第二个警报会显示0?

  var pollData = new Array();
  pollData['pollType'] = 2;
  alert(pollData['pollType']); // This prints 2
  alert(pollData.length); // This prints 0 ??

6 个答案:

答案 0 :(得分:8)

只有在添加数字索引时才会更改数组的长度。例如,

pollData["randomString"] = 23;

对长度没有影响,但是

var pollData = [];
pollData["45"] = "Hello";
pollData.length; // 46

将长度更改为46.请注意,如果键是数字或字符串,则无关紧要,只要它是数字整数即可。

此外,您不应该以这种方式使用数组。考虑更多的副作用,因为数组也是对象,而在JavaScript中,任何对象都可以将任意键作为字符串保存。

答案 1 :(得分:2)

因为你还没有把任何东西放到数组中。您只是在数组对象上分配了动态创建的pollType属性。

如果使用数字索引,则数组会自动处理长度。例如:

var arr = [  ];    // same as new Array()
arr[2] = 'Banana!';
alert(arr.length);    // prints 3 (indexes 0 through 2 were created)

答案 2 :(得分:0)

length属性仅考虑那些名称为索引的数组成员(如'1''2''3',...)。

答案 3 :(得分:0)

JavaScript中的数组只有数字索引。

使用一个对象,它基本上就是你在上面做的,在该数组对象上设置属性。

答案 4 :(得分:0)

array.length返回数组中存储的值。第一个警报是返回“pollType”位置的值。

我在javascript数组需要帮助时总是使用的参考指南是此页面http://www.hunlock.com/blogs/Mastering_Javascript_Arrays

我还会在Javascript不支持关联数组的标题下阅读它所说的内容,因为你也可能遇到问题。

答案 5 :(得分:0)

var pollData = Array();

function test() {
    pollData[0] = 2
    alert(pollData[0]);
    alert(pollData.length);
}

// [x]是数组位置;因此['polltype']导致问题