我有以下对象:
var l={"a":1,"b":2,"c":5};
我想得到这个
的长度alert(l.length);
但返回undefined
。显然我希望得到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);