Javascript 如何在angular中使用对象关键点上的groupBy

Javascript 如何在angular中使用对象关键点上的groupBy,javascript,angular,Javascript,Angular,如何在array``、assets``上使用groupBy,该groupBy基于对象键的角度,即PRN、PRN1、PRN2 这是我的list.component.ts的代码 首先,我在当前日期处过滤它 列表.组件.ts 我想要的是基于对象键的groupit,比如PRN/PRN1/PRN2 应该是这样的(示例) 控制台 提前感谢。将结果转换为对象而不是数组,我在下面的代码中排除了一些逻辑,您可以将其包括在内 const merge = (array: any) => array.reduc

如何在
array``、
assets``上使用groupBy,该groupBy基于
对象键
的角度,即
PRN、PRN1、PRN2

这是我的list.component.ts的代码

首先,我在当前日期处过滤它

列表.组件.ts

我想要的是基于对象键的
group
it,比如
PRN/PRN1/PRN2

应该是这样的(示例)

控制台


提前感谢。

将结果转换为对象而不是数组,我在下面的代码中排除了一些逻辑,您可以将其包括在内

const merge = (array: any) => array.reduce((results: any, item: any) => {

    results[item.assetCode] = [{
      code: item.code,
      date: item.date,
      assetCount: item.assetCount
    }]
  return results;
}, {});

this.rowData = merge(this.rowData);
console.log(this.rowData);

您可以维护一个对象,并通过将assetcode设置为键,开始将值放入该对象

const obj = {};
for (const [index, data] of rowData.entries()) {
  // console.log(data);
  if (obj.hasOwnProperty(data.assetCode)) {
    obj[data.assetCode].push(data);
  } else {
    obj[data.assetCode] = [];
    obj[data.assetCode].push(data);
  }
}

你将如何推进它?它不是数组,一个向对象添加键(PNR)的对象{PRN:[{'code':'Machine 1','assetCount':2',date':'2019-01-19'}],PRN 1:[{'code':'Machine 2','assetCount':3',date':'2019-01-19'}]我试着达到上面的效果,它奏效了,你可以附加任何你需要的数据
const merge = (array: any) => array.reduce((results: any, item: any) => {

    results[item.assetCode] = [{
      code: item.code,
      date: item.date,
      assetCount: item.assetCount
    }]
  return results;
}, {});

this.rowData = merge(this.rowData);
console.log(this.rowData);
const obj = {};
for (const [index, data] of rowData.entries()) {
  // console.log(data);
  if (obj.hasOwnProperty(data.assetCode)) {
    obj[data.assetCode].push(data);
  } else {
    obj[data.assetCode] = [];
    obj[data.assetCode].push(data);
  }
}