javascript - Typescript 中的 Json 形成(Angular 7)

标签 javascript json ecmascript-6

我有一个嵌套的 json,如下所示。

{
card:[{
    id:1;
    details:[{id:1},{id:2}],
    sheet:{
        id:1
    }
},{
    id:2;
    details:[{id:3},{id:4}],
    sheet:{
        id:1
    }
}
]
}
<小时/>

我需要根据下面的工作表对详细信息进行分组。

{
sheet:{
    id:1,
    details:[{id:1},{id:2},{id:3},{id:4}]
}
 }
<小时/>

我如何在 typescript 中实现这一目标?

经历了 NPM-groupBy 但我认为它并没有真正解决我的问题。 还有其他方法可以做到这一点吗?

最佳答案

如果我理解正确,这将是数组归约方法的一个很好的用例,例如:

const cards = [
  {
    id: 1,
    details: [
      {id:1},
      {id:2}
    ],
    sheet:{
      id:1
    }
  },
  {
    id:2,
    details: [
      {id:3},
      {id:4}
    ],
    sheet:{
      id:1
    }
  },
  {
    id:3,
    details: [
      {id:5},
      {id:6}
    ],
    sheet:{
      id:2
    }
  }
];

const sheets = cards.reduce( (sheets: Array<any>, card: any) => {
  const existingSheet = sheets.find(sheet => card.sheet.id === sheet.id);
    if (existingSheet) {
      existingSheet.details.concat(card.details);
    } else {
      sheets.push({id: card.sheet.id, details: card.details});
    }
    return sheets;
  }, []
);

console.log(sheets);

关于javascript - Typescript 中的 Json 形成(Angular 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56179465/

相关文章:

javascript - Angular Highcharts 动态 x 轴不工作

javascript - 覆盖/替换多维数组中的值

c# - 如何在 C# 中将 JSON 数组(作为字符串)解析为 Dictionary<string,string>?

json - 使用jsonlite包解析JSON文件时出错

javascript - 我们需要包含 javascript 方法的返回类型吗

javascript - 基于选择/选项值更新 HTML?

javascript - 计算具有多个 ID 的多个 Yii2 掩码输入

javascript - 使用 PHP 在 Highcharts 中导入数据

javascript - 尝试删除时,React 列表会删除错误的项目

javascript - 比较对象内的键值是否重复