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

时间:2011-03-15 19:59:45

标签: jquery arrays

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

为什么以下返回'undefined'?

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

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

7 个答案:

答案 0 :(得分:81)

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

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

只有数组具有length属性:

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

请注意,Javascript数组从0开始编制索引,并且不一定是sparse(因此结果为3而不是2 - 请参阅this answer以获取有关数组时间的说明将是稀疏的,什么时候不会。)

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

如果未定义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);

答案 4 :(得分:0)

       var mode = [];
                $("input[name='mode[]']:checked").each(function(i) {
                    mode.push($(this).val());
                })
 if(mode.length == 0)
                {
                   alert('Please select mode!')
                };

答案 5 :(得分:-1)

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.

答案 6 :(得分:-2)

          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.