获取对象的长度

pat*_*ick 5 javascript

我有以下对象:

var l={"a":1,"b":2,"c":5};
Run Code Online (Sandbox Code Playgroud)

我想得到这个的长度

alert(l.length);
Run Code Online (Sandbox Code Playgroud)

但那又回来了undefined.显然,我希望得到3答案.

Eri*_*ric 11

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

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

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

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

Object.length(l);
Run Code Online (Sandbox Code Playgroud)

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