代码:
var animals = {
"elephant": {
"name" : "Bingo",
"age" : "4"
},
"Lion": {
"name" : "Tango",
"age" : "8"
},
"Tiger": {
"name" : "Zango",
"age" : "7"
}
}
我想在此对象文字中使用Jquery计算对象的数量。
答案 0 :(得分:20)
您可以使用Object.keys(animals).length
或者
var count = 0;
for (var animal in animals) {
if (animals.hasOwnProperty(animal)) {
count++;
}
}
// `count` now holds the number of object literals in the `animals` variable
或者许多jQuery解决方案中的一个可能是也可能不是最有效的:
var count = $.map(animals, function(n, i) { return i; }).length;
答案 1 :(得分:1)
如果你想要一些跨浏览器的东西,那也是在IE8上工作,你就不能以一种非常干净的方式去做(参见compatibility of the keys property)。
我建议:
var n = 0;
for (var _ in animals) n++;
(因为它是一个对象文字,不需要hasOwnProperty)
答案 2 :(得分:-1)
你不能使用数组吗?
无论如何,在一个对象中,你可以这样做:
Object.prototype.length = function() {
var count = 0, k=null;
for (k in this) {
if (this.hasOwnProperty(k)) count++;
}
return count;
}
console.log( animals.length() );