Summarize array of objects and calculate average value for each unique object name

前端 未结 6 1827
忘了有多久
忘了有多久 2020-12-17 02:31

I have an array like so:

var array = [
     {
       name: \"a\",
       value: 1 
     },
     {
       name: \"a\",
       value: 2 
     },
     {
                


        
6条回答
  •  没有蜡笔的小新
    2020-12-17 03:34

    var array = [
         {
           name: "a",
           value: 1 
         },
         {
           name: "a",
           value: 2 
         },
         {
           name: "a",
           value: 3 
         },
         {
           name: "b",
           value: 0 
         },
         {
           name: "b",
           value: 1 
         }
     ];
    var sum = {};
    for(var i = 0; i < array.length; i++) {
        var ele = array[i];
        if (!sum[ele.name]) {
            sum[ele.name] = {};
            sum[ele.name]["sum"] = 0;
            sum[ele.name]["count"] = 0;
        }
        sum[ele.name]["sum"] += ele.value;
        sum[ele.name]["count"]++;
    }
    var result = [];
    for (var name in sum) {
        result.push({name: name, value: sum[name]["sum"] / sum[name]["count"]});
    }
    console.log(result);
    

提交回复
热议问题