【问题标题】:How to get the count of duplicate value assigned to same key in JSON array - JavaScript/NodeJS如何获取分配给 JSON 数组中相同键的重复值的计数 - JavaScript/NodeJS
【发布时间】:2016-12-15 22:58:17
【问题描述】:

大家好,我需要一些帮助来解决这个问题。

如果这是重复的帖子,请指出原始问题。

这里有一个 JSON 元素数组

例如:var consume = [{"key":"Test1"},{"key":"Test2"},{"key":"Test3"},{"key":"Test1"},{"key":"Test3"},{"key":"Test1"}];

预期输出:

var 生产 = [{"name":"test1","count":3},{"name":"test2","count":2},{"name":"test3","count":2}]

【问题讨论】:

    标签: javascript arrays json node.js


    【解决方案1】:

    最后我用纯 javascript 写了我的问题的答案。

    感谢您的支持,他们曾试图指导我解决我的问题

    var consume = [{"key":"Test1"},{"key":"Test2"},{"key":"Test3"},{"key":"Test1"},{"key":"Test3"},{"key":"Test1"}]
     
     var temp = [];
     
     var produce = [];
     
     for(var i=0;i<consume.length;i++){
       if(temp.indexOf(consume[i].key) == -1){
       		temp.push(consume[i].key);
          var _data = {};
          _data.name = consume[i].key;
          _data.count = 1;
          
          produce.push(_data);
       }else{
         for(var j=0;j<produce.length;j++){
         		if(produce[j].name === consume[i].key){
            		var _x = parseInt(produce[j].count) + 1;
                produce[j].count = _x;
            }
         }
       }
     }
    
    console.log(produce);

    【讨论】:

      【解决方案2】:

      嗯.. 这些天来,当谈到对象属性时,我对 ES6 迭代器很感兴趣。这就是我处理这份工作的方式;

      var consume = [{"key":"Test1"},{"key":"Test2"},{"key":"Test3"},{"key":"Test1"},{"key":"Test3"},{"key":"Test1"}],
          reduced = consume.reduce((p,c) => (p[c.key] ? p[c.key]++ : p[c.key] = 1,p),{}),
          produce = [];
      reduced[Symbol.iterator] = function*(){
                                   var oKeys = Object.keys(this);
                                   for(var key of oKeys) yield {name : key, count: this[key]};
                                 };
      produce = [...reduced];
      console.log(produce);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-06
        • 2019-05-05
        • 2013-08-20
        • 2020-11-06
        • 2019-07-07
        • 1970-01-01
        • 2020-06-30
        • 2017-06-16
        相关资源
        最近更新 更多