如何获取对象长度

2022-08-29 23:57:35

是否有任何内置函数可以返回对象的长度?

例如,我有哪个应该返回.如果我使用它,则返回.a = { 'a':1,'b':2,'c':3 }3a.lengthundefined

它可能是一个简单的循环函数,但我想知道是否有内置函数?

有一个相关的问题(JSON对象的长度) - 在选择的答案中,用户建议将对象转换为数组,这对于我的任务来说不太舒服。


答案 1

对于支持 Object.keys() 的浏览器,您只需执行以下操作:

Object.keys(a).length;

否则(特别是在IE<9中),您可以使用循环自己遍历对象:for (x in y)

var count = 0;
var i;

for (i in a) {
    if (a.hasOwnProperty(i)) {
        count++;
    }
}

这是为了确保您只计算对象文本的属性,而不是它从其原型“继承”的属性。hasOwnProperty


答案 2

这应该这样做:

Object.keys(a).length

但是,在IE8及更低版本,Opera和FF 3.6及以下版本中不受支持。Object.keys

现场演示:http://jsfiddle.net/simevidas/nN84h/