任何人都可以解释为什么第二个警报说0吗?JavaScript数组长度方法
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
任何人都可以解释为什么第二个警报说0吗?JavaScript数组长度方法
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
只有添加数字索引时,数组的长度才会更改。例如,
pollData["randomString"] = 23;
对长度没有影响,但
var pollData = [];
pollData["45"] = "Hello";
pollData.length; // 46
改变长度46注,这并不重要,如果该键是一个数字或字符串,只要它是一个数字整数。另外,你不应该这样使用数组。考虑它更多的副作用,因为数组也是对象,并且在JavaScript中,任何对象都可以将任意键保存为字符串。
因为您还没有将任何东西放入数组中。您只分配给阵列对象上动态创建的pollType
属性。
如果使用数字索引,则数组自动处理长度。例如:
var arr = [ ]; // same as new Array()
arr[2] = 'Banana!';
alert(arr.length); // prints 3 (indexes 0 through 2 were created)
的length
属性仅考虑所述阵列名称是索引的那些成员(例如'1'
,'2'
,'3'
,...)。
JavaScript中的数组只有数字索引。
使用一个对象,这基本上就是你在做什么,在该数组对象上设置属性。
array.length返回数组中存储了多少个值。第一个警报返回位置'pollType'的值。
的参考指南需要帮助的JavaScript阵列时,我一直用的是这个页面http://www.hunlock.com/blogs/Mastering_Javascript_Arrays
我还念出来的标题下的Javascript不支持关联数组,你可能会遇到这个问题,也。
只是想要说明的是,尽管这就是Array.length应该做的事情,但它并不是那样。这里:http://jsfiddle.net/6WrkT/1/ –
var pollData = Array();
function test() {
pollData[0] = 2
alert(pollData[0]);
alert(pollData.length);
}
// [x]是数组位置;因此['polltype']正在导致问题
那个狗屎。不要这样做阵列ü让我的大脑受伤 –