首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jquery计算对象文本中的对象数量

使用Jquery计算对象文本中的对象数量
EN

Stack Overflow用户
提问于 2012-12-10 22:32:54
回答 3查看 23.3K关注 0票数 9

代码:

代码语言:javascript
运行
复制
var animals = {
                    "elephant": {
                                    "name" : "Bingo",
                                    "age" : "4"
                                },
                    "Lion":     {
                                    "name" : "Tango",
                                    "age" : "8"
                                },
                    "Tiger":    {
                                    "name" : "Zango",
                                    "age" : "7"
                                }
                }

我想在这个对象字面量中使用Jquery计算对象的数量。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-10 22:33:35

您可以使用Object.keys(animals).length

代码语言:javascript
运行
复制
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解决方案中的一个,它们可能是效率最高的,也可能不是:

代码语言:javascript
运行
复制
var count = $.map(animals, function(n, i) { return i; }).length;
票数 22
EN

Stack Overflow用户

发布于 2012-12-10 22:35:56

如果你想要一些跨浏览器的东西,那也可以在IE8上工作,你不能以一种真正干净的方式来做(参见compatibility of the keys property)。

我建议这样做:

代码语言:javascript
运行
复制
var n = 0;
for (var _ in animals) n++;

(因为它是一个对象文字,所以不需要hasOwnProperty)

票数 1
EN

Stack Overflow用户

发布于 2012-12-10 22:41:03

你不能使用数组吗?

无论如何,在一个对象中,你可以这样做:

代码语言:javascript
运行
复制
Object.prototype.length = function() {
    var count = 0, k=null;
    for (k in this) {
        if (this.hasOwnProperty(k)) count++;
    }
    return count;
}
console.log( animals.length() );
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13802987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档