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

美国广播公司

如何在角度中使用groupBy对对象进行分组

rowData = [
  {code: "Machine 1", date: "2019-01-19 02:00:00", assets: { PRN: 2}},
  {code: "Machine 2", date: "2019-01-20 00:00:00", assets: { PRN1: 2}},
  {code: "Machine 3", date: "2019-01-21 00:00:00", assets: { PRN: 2}},
  {code: "Machine 4", date: "2019-01-22 00:00:00", assets: { PRN1: 2}},
  {code: "Machine 5", date: "2019-01-23 00:00:00", assets: { PRN2: 2}}
]

它是该组成对象键PRNPRN1PRN2

输出应该是

PRN: [{...}]
PRN1: [{...}]
PRN2: [{...}]
茨韦坦·加内夫

您不需要使用RxJS,因为您可以使用内置Array.reduce函数来做到这一点

rowData.reduce((groupedBy, row) => {
  // get the PRN/PRN1/PRN2 value
  const key = Object.keys(row.assets)[0];

  // create an array of rows belonging to the key
  // if it does not already exist
  if (!Array.isArray(groupedBy[key])) {
    groupedBy[key] = [];
  }

  // add the current row to the corresponding object key 
  groupedBy[key].push(row);
  return groupedBy;
}, {})

结果:

{
  "PRN": [
    {
      "code": "Machine 1",
      "date": "2019-01-19 02:00:00",
      "assets": {
        "PRN": 2
      }
    },
    {
      "code": "Machine 3",
      "date": "2019-01-21 00:00:00",
      "assets": {
        "PRN": 2
      }
    }
  ],
  "PRN1": [
    {
      "code": "Machine 2",
      "date": "2019-01-20 00:00:00",
      "assets": {
        "PRN1": 2
      }
    },
    {
      "code": "Machine 4",
      "date": "2019-01-22 00:00:00",
      "assets": {
        "PRN1": 2
      }
    }
  ],
  "PRN2": [
    {
      "code": "Machine 5",
      "date": "2019-01-23 00:00:00",
      "assets": {
        "PRN2": 2
      }
    }
  ]
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

如何在javascript中基于多个键对数组进行分组和转换?

如何对数组中的对象进行分组

使用JavaScript中的对象对数组项进行分组

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

通过每个元素中的键之一对JS中的对象进行排序

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

如何基于键对数组进行分组,以及如何使用分组数组作为值来创建动态对象?

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

如何基于三个键对数组对象进行分组

如何基于Javascript / Jquery中的多个键对数组项进行分组

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

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

根据对象数组中的唯一键进行分组

如何在Powershell中通过对象的属性值之一对数组进行排序?

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

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

根据对象的属性之一对数组进行排序

按对象的属性之一对数组列表进行排序(双精度值)

如何对数组中的项目进行分组?

如何在JavaScript中对数组条目进行分组

如何通过对象字符串值之一对对象数组进行数字排序?

相对于他在jQuery / Js中的内部数据之一对数组进行排序

如何按对象属性之一对对象属性进行排序(不对数组进行排序)?

如何在javascript中对数组进行分组?

根据其字符串属性之一对数组中的对象重新排序?

如何通过其键之一的值访问嵌套在数组中的对象?

如何根据javascript中的对象属性对数据进行分组?

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