在jquery中查找数组的长度(大小)

Ed.*_*Ed. 46 arrays jquery

我想我会疯了.我有一个简单的问题,我出于某种原因正在努力.

为什么以下返回'undefined'?

var testvar={};
testvar[1]=2;
testvar[2]=3;
alert(testvar.length);
Run Code Online (Sandbox Code Playgroud)

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

Cam*_*ron 85

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

也许你打算写testvar.length; 这也是未定义的,因为对象(使用{ ... }符号创建)没有长度.

只有数组具有length属性:

var testvar = [  ];
testvar[1] = 2;
testvar[2] = 3;
alert(testvar.length);    // 3
Run Code Online (Sandbox Code Playgroud)

请注意,Javascript数组从索引开始0并且不一定是稀疏的(因此为什么结果是3而不是2 - 请参阅此答案以获得有关何时数组将稀疏以及何时不稀疏的解释).


mVC*_*Chr 5

testvar[1] 是该数组索引的值,即数字 2。数字没有长度属性,您正在检查未定义的 2.length。如果你想要数组的长度,只需检查 testvar.length