通过相同的键对JavaScript数组对象进行分组

完结

我有一个对象数组,其中一些具有相同的月份名称,但基于日期的值不同。我们如何基于相同的属性值对数组对象进行分组,例如:

 [ { month: 'Jan', value: 3 },
  { month: 'Jan', value: 3.5 },
  { month: 'Feb', value: 2.1 },
  { month: 'Mar', value: 6 },
  { month: 'Apr', value: 4.3 },
  { month: 'May', value: 5.5 },
  { month: 'Jun', value: 7 },
  { month: 'Jun', value: 9 },
  { month: 'Jul', value: 7 },
  { month: 'Jul', value: 9 },
  { month: 'Jul', value: 7 },
  { month: 'Aug', value: 9 },
  { month: 'Sep', value: 9 },
  { month: 'Sep', value: 9 },
  { month: 'Oct', value: 8 },
  { month: 'Oct', value: 5 },
  { month: 'Oct', value: 3 },
  { month: 'Nov', value: 12 },
  { month: 'Nov', value: 19.5 } ]

所以我想得到的是带有月份和月份总和的新数组:

[{month:"Jan", val:6.5},{month:"Feb", val:5.6},{month:"Mar", val:6},].
坦莫·克里希纳·达斯

一个简单的人类可读解决方案可以如下:

var input = [ { month: 'Jan', value: 3 },
  { month: 'Jan', value: 3.5 },
  { month: 'Feb', value: 2.1 },
  { month: 'Mar', value: 6 },
  { month: 'Apr', value: 4.3 },
  { month: 'May', value: 5.5 },
  { month: 'Jun', value: 7 },
  { month: 'Jun', value: 9 },
  { month: 'Jul', value: 7 },
  { month: 'Jul', value: 9 },
  { month: 'Jul', value: 7 },
  { month: 'Aug', value: 9 },
  { month: 'Sep', value: 9 },
  { month: 'Sep', value: 9 },
  { month: 'Oct', value: 8 },
  { month: 'Oct', value: 5 },
  { month: 'Oct', value: 3 },
  { month: 'Nov', value: 12 },
  { month: 'Nov', value: 19.5 } ];

var result = [];

for (var i = 0; i < input.length; i++) {
    var data = input[i];
    var found=false;
    for(var j=0; j<result.length; j++) {
        if(result[j].month === data.month) {
            found=true;
            result[j].value += data.value;
            break;
        }
    }
    if(!found) {
        result.push(data);
    }
}

//The result array is your desired result
console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过JavaScript中的对象键之一对数组进行分组

如何通过键对对象数组进行分组

如何基于键对对象的JavaScript数组进行分组

Javascript通过相同的对象键重新排列数组

通过嵌套键对数组进行分组

将对象转换为数组并通过对象键对其进行分组

如何通过第一个元素对象键对数组中的数组进行分组

通过通用键对对象数组进行分组,将嵌套属性合并到数组中

如何通过与给定键数目相同的键数目对对象数组进行排序?

如何通过特定键在数组中按字母顺序对对象进行分组?

从javascript对象对具有相同数值的键进行分组的最快方法?

Javascript - 对相同的数字数组进行分组

使用javascript中的相同键分组数组对象不起作用

通过多个键对数组进行分组并更改键名 JavaScript

使用对象键对对象数组进行分组

如何通过基于特定字段值对对象进行分组来过滤 javascript 对象数组?

根据数组类型键对对象数组进行分组

如何基于Javascript中的多个键对对象数组进行分组?

如何基于javascript中对象数组的日期键对产量值进行分组

在javascript中对对象数组进行分组

使用lodash通过多个键对对象进行分组

通过Chartjs条形图的键对对象进行分组

Linq Order通过对具有相同集合的对象进行分组

如何通过PHP中的多个键对数组进行分组

如何通过多个键对JSON数组数据进行分组

Javascript:通过相同的键/值合并/重命名数组中的相似对象

javascript通过lodash获取具有相同键的数组对象的平均值

PostgreSQL:通过对相同 id 的值进行分组来创建数组

如何通过Javascript中的唯一属性对数组中的对象进行分组?