【问题标题】:Counting the number of properties in a JavaScript object计算 JavaScript 对象中的属性数量
【发布时间】:2012-01-03 23:21:19
【问题描述】:

所以我有这个使用 arborjs 显示树结构的 JavaScript 文字。

var data = {
    "nodes": {
        You: {
            'color': 'green',
            'shape': 'dot',
            'label': 'You'
        },
        Ben: {
            'color': 'black',
            'shape': 'dot',
            'label': 'Ben'
        },
        David: {
            'color': 'black',
            'shape': 'dot',
            'label': 'David'
        }
    },
    "edges": {
        You: {
            Ben: {},
            David: {}
        },
        Ben: {
            David: {}
        }
    }
};

我想计算节点对象中的属性数(本例中为 3 个)和边对象中的属性数(本例中为 2 个),以显示用户树的一些统计信息。我使用 ruby​​ on rails 通过递归遍历我的数据库并创建哈希来输出数据变量。但在此之前,我应该计算节点客户端还是服务器端?我应该再次查看数据库并计算统计信息还是只计算属性?

【问题讨论】:

标签: javascript ruby count nodes


【解决方案1】:

计算你能做的节点数

var count=0;
for(node in data.nodes)
    count++; 

【讨论】:

    【解决方案2】:

    你可以这样做:

    var data = {
                       "nodes":{
                        "You":{'color':'green','shape':'dot','label':'You'},
                         Ben:{'color':'black','shape':'dot','label':'Ben'},
                         David:{'color':'black','shape':'dot','label':'David'}
                       }, 
                       "edges":{
                         You:{ Ben:{}, David:{} },
                         Ben:{ David:{}}
                       }
                     };
    Object.prototype.NosayrCount = function () {
        var count = 0;
        for(var i in this)
            if (this.hasOwnProperty(i))
                count++;
        return count;
    }
    
    data.NosayrCount(); // 2
    data.Nodes.NosayrCount(); // 3
    data.edges.NosayrCount(); // 2
    

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 1970-01-01
      • 2022-01-10
      • 2010-09-12
      • 1970-01-01
      • 2021-01-02
      • 2015-09-20
      相关资源
      最近更新 更多