2011-03-15 37 views
37

我想我会疯了。我有一个简单的问题,我出于某种原因正在努力。在jquery中查找数组的长度(大小)

为什么下面返回'undefined'?

var testvar={}; 
testvar[1]=2; 
testvar[2]=3; 
alert(testvar.length); 

编辑我最初键入的testvar [1]。长度。我知道这是一个错误。我的意思是testvar.length

+0

你想完成什么?你期望的结果是什么? – Cameron

回答

67

因为2不是一个数组,它是一个数字。数字没有长度。

也许你的意思是写testvar.length;这也是未定义的,因为对象(使用{ ... }表示法创建)没有长度。

只有阵列具有长度属性:

var testvar = [ ]; 
testvar[1] = 2; 
testvar[2] = 3; 
alert(testvar.length); // 3 

注意的Javascript阵列索引开始0并且不一定sparse(因此为什么结果是3而不是2 - 见this answer为的说明当数组将稀疏,当它不会)。

1

整数没有方法长度。尝试串

var testvar={}; 
testvar[1]="2"; 
alert(testvar[1].length); 
4

的testvar [1]是数组索引,这是数字2号不具有length属性,而你检查2.length这是未定义的值。如果你想要阵列的长度只是检查testvar.length

相关问题