var a = new Array();
a['a']=1;
a['b']=2;
a['c']=3;
console.log(a.length);
输出为undefined。如果是字符的key值,怎么得到这个数组的长度呢?难道只能自己用prototype定义一个方法来计算数组的长度么 - -!

解决方案 »

  1.   

    这是数组啊,只能用1,2,3,4这样的索引来访问的。。不是键值对象var a = {}
    a['a']=1;
    a['b']=2;
    a['c']=3;
    这样倒可以的不过没有 length属性
      

  2.   

    var a = {}
    a['a']=1;
    a['b']=2;
    a['c']=3;
    a.getLength = function()
    {
       var count = 0 ; 
       for(key in a)
       {
            if(typeof(a[key]) != 'function') count++;
       }
       return count
    }
    a.length = a.getLength()
    console.log(a.length)
      

  3.   

    a.length 是0吧,怎么是undefined?
    var a = new Array();
    a['a']=1;
    a['b']=2;
    a['c']=3;这个是给把a 当作object使用,给a加了a,b,c的属性
      

  4.   


    for(key in a) 这样会遍历数组的所有属性和值么?