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

例如,我有a = {'a':1,'b':2,'c':3},它应该返回3。如果我使用。length,它返回undefined。

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

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


当前回答

对于那些来这里查找已经是jQuery对象的项目计数的人: .length就是你想要的长度:

例子:

len = $('#divID').length;
alert(len);

其他回答

也可以这样做:

Object.entries(obj).length

例如:

let obj = { a: 1, b: 2, };
console.log(Object.entries(obj).length); //=> 2
// Object.entries(obj) => [ [ 'a', 1 ], [ 'b', 2 ] ]

可以用$.map()轻松完成:

var len = $.map(a, function(n, i) { return i; }).length;

你可以使用类似Lodash lib的东西,_.toLength(object)应该给你对象的长度

还有一个答案:

var j = '[{“uid”:“1”,“名字”:“宾果男孩”、“profile_img”:“funtimes.jpg”},{“uid”:“2”,“名字”:“约翰尼苹果”,“profile_img”:“badtime.jpg”}]”; obj = Object.keys(j).length; console.log (obj)

这应该做到:

Object.keys(a).length

然而,对象。在IE8及以下版本、Opera和FF 3.6及以下版本不支持。

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