我有以下对象:
var l={"a":1,"b":2,"c":5};
我想得到这个的长度
alert(l.length);
但这会返回undefined
。显然,我正在寻找3
答案。
我有以下对象:
var l={"a":1,"b":2,"c":5};
我想得到这个的长度
alert(l.length);
但这会返回undefined
。显然,我正在寻找3
答案。
您可以使用 来计算对象中的条目数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()
,但我没有,因为如果您的对象容器是 key ,那将失败length
。
var l={"a":1,"b":2,"c":5};
Object.keys(l).length;
function count(O){
for(var p in O){
if(O.hasOwnProperty(p))++cnt;
}
return cnt;
}
count(l);