获取对象的长度

时间:2012-05-17 18:33:38

标签: javascript

我有以下对象:

var l={"a":1,"b":2,"c":5};

我想得到这个

的长度
alert(l.length);

但返回undefined。显然我希望得到3作为答案。

3 个答案:

答案 0 :(得分:11)

您可以使用Object.keys()计算对象中的条目数,该对象返回对象中的键数组:

var l = {a: 1, b: 2, c: 3};
Object.keys(l).length;

但是,实现自己的属性可能更有效(和跨浏览器):

Object.length = function(obj) {
    var i = 0;
    for(var key in obj) i++;
    return i;
}

Object.length(l);

请注意,虽然我可以将函数定义为Object.prototype.length,但允许您编写l.length(),但我没有,因为如果对象容器为密钥length,则会失败。

答案 1 :(得分:1)

var l={"a":1,"b":2,"c":5};
Object.keys(l).length;

答案 2 :(得分:1)

function count(O){
    for(var p in O){
        if(O.hasOwnProperty(p))++cnt;
    }
    return cnt;
}
count(l);