在jQuery中查找数组的长度(大小)
我想我快要疯了。 我有一个简单的问题,出于某种原因,我正在苦苦挣扎。
为什么下面的返回“ undefined”?
var testvar={};
testvar[1]=2;
testvar[2]=3;
alert(testvar.length);
编辑我最初输入testvar [1] .length。 我知道这是一个错误。 我的意思是testvar.length
Ed. asked 2020-06-30T21:50:30Z
7个解决方案
85 votes
因为0不是数组,所以是数字。 数字没有长度。
也许您打算写0; 这也是不确定的,因为对象(使用{ ... }符号创建)没有长度。
只有数组具有length属性:
var testvar = [ ];
testvar[1] = 2;
testvar[2] = 3;
alert(testvar.length); // 3
请注意,Javascript数组从0开始索引,并且不一定是稀疏的(因此,结果为3而不是2的原因-请参见此答案以了解何时数组将稀疏以及什么时候不稀疏)。
Cameron answered 2020-06-30T21:50:58Z
4 votes
testvar [1]是该数组索引的值,即数字2。数字没有length属性,并且您正在检查2.length(未定义)。 如果您想要数组的长度,只需检查testvar.length
mVChr answered 2020-06-30T21:51:18Z
2 votes
整数没有方法长度。 尝试字符串
var testvar={};
testvar[1]="2";
alert(testvar[1].length);
Dim_K answered 2020-06-30T21:51:38Z
0 votes
如果length未定义,则可以使用:
function count(array){
var c = 0;
for(i in array) // in returns key, not object
if(array[i] != undefined)
c++;
return c;
}
var total = count(array);
RafaSashi answered 2020-06-30T21:51:57Z
0 votes
var mode = [];
$("input[name='mode[]']:checked").each(function(i) {
mode.push($(this).val());
})
if(mode.length == 0)
{
alert('Please select mode!')
};
kush answered 2020-06-30T21:52:13Z
-1 votes
var array=[];
array.push(array); //insert the array value using push methods.
for (var i = 0; i < array.length; i++) {
nameList += "" + array[i] + ""; //display the array value.
}
$("id/class").html(array.length); //find the array length.
Tanmaya answered 2020-06-30T21:52:28Z
-2 votes
obj={};
$.each(obj, function (key, value) {
console.log(key+ ' : ' + value); //push the object value
});
for (var i in obj) {
nameList += "" + obj[i] + "";//display the object value
}
$("id/class").html($(nameList).length);//display the length of
object.
Tanmaya answered 2020-06-30T21:52:44Z