是否有任何内置函数可以返回对象的长度?
例如,我有a = {'a':1,'b':2,'c':3},它应该返回3。如果我使用。length,它返回undefined。
它可以是一个简单的循环函数,但我想知道是否有内置函数?
还有一个相关的问题(JSON对象的长度)——在选择的答案中,用户建议将对象转换为数组,这对我的任务来说不是很舒服。
是否有任何内置函数可以返回对象的长度?
例如,我有a = {'a':1,'b':2,'c':3},它应该返回3。如果我使用。length,它返回undefined。
它可以是一个简单的循环函数,但我想知道是否有内置函数?
还有一个相关的问题(JSON对象的长度)——在选择的答案中,用户建议将对象转换为数组,这对我的任务来说不是很舒服。
当前回答
你可以使用类似Lodash lib的东西,_.toLength(object)应该给你对象的长度
其他回答
你看过underscore.js (http://underscorejs.org/docs/underscore.html)吗?它是一个实用程序库,有很多有用的方法。有一个集合大小方法,以及一个toArray方法,这可能会为您提供您所需要的。
_.size({one : 1, two : 2, three : 3});
=> 3
所以我们不需要去寻找和替换对象。方法,另一种方法是在脚本执行的早期执行以下代码:
if(!Object.keys)
{
Object.keys = function(obj)
{
return $.map(obj, function(v, k)
{
return k;
});
};
}
你可能在对象中有一个未定义的属性。 如果使用Object.keys(data)方法。长度被使用,这些属性也将被计算。
你最好把它们过滤掉。
Object.keys(data).filter((v) => {return data[v] !== undefined}).length
对于那些来这里查找已经是jQuery对象的项目计数的人: .length就是你想要的长度:
例子:
len = $('#divID').length;
alert(len);
可以用$.map()轻松完成:
var len = $.map(a, function(n, i) { return i; }).length;