问题描述
我觉得我快疯了.我有一个简单的问题,由于某种原因我一直在苦苦挣扎.
I think I'm going crazy. I have a simply question that I'm struggling with for some reason.
为什么下面返回'undefined'?
Why does the below return 'undefined'?
var testvar={};
testvar[1]=2;
testvar[2]=3;
alert(testvar.length);
edit 我最初输入的是 testvar[1].length.我知道这是一个错误.我的意思是 testvar.length
edit I originally typed testvar[1].length. I knew this to be an error. I meant testvar.length
推荐答案
因为 2
不是数组,而是数字.数字没有长度.
Because 2
isn't an array, it's a number. Numbers have no length.
也许你打算写testvar.length
;这也是未定义的,因为对象(使用 { ... }
符号创建)没有长度.
Perhaps you meant to write testvar.length
; this is also undefined, since objects (created using the { ... }
notation) do not have a length.
只有数组有长度属性:
var testvar = [ ];
testvar[1] = 2;
testvar[2] = 3;
alert(testvar.length); // 3
请注意,Javascript 数组的索引从 0
开始,不一定 sparse (因此为什么结果是 3 而不是 2——见 this answer 用于解释数组何时稀疏以及何时不稀疏).
Note that Javascript arrays are indexed starting at 0
and are not necessarily sparse (hence why the result is 3 and not 2 -- see this answer for an explanation of when the array will be sparse and when it won't).
这篇关于在 jquery 中查找数组的长度(大小)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!