javascript - 根据id将json数组转换为单个数组

标签 javascript json typescript

我想根据 IDclass 属性将一个数组转换为另一个数组。

我有一个数组:

const json = [{
  "ID": 10,
  "Sum": 860,
  "class": "K",
}, {
  "ID": 10,
  "Sum": 760,
  "class": "one",
}, {
  "ID": 10,
  "Sum": 860,
  "class": "two",
}];

我想创建以下格式的数据:

[{"ID":10,"K":860,"one":760,"two":860}]

最佳答案

像这样,也许有更有效的解决方案,我在 5 分钟内创建了这个。

const input = [
{
    "ID": 10,
    "Sum": 860,
    "class": "K",
},
{
    "ID": 10,
    "Sum": 760,
    "class": "one",
},
{
    "ID": 10,
    "Sum": 860,
    "class": "two",
}];

const result = [];

input.forEach(item => {
  const exists = result.find(i => i.id === item.id);
  if (exists) {
    exists[item.class] = item.Sum;
  } else {
    item[item.class] = item.Sum;
    delete item.Sum;
    delete item.class;
    result.push(item);
  }
});

console.log(result)

关于javascript - 根据id将json数组转换为单个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55838107/

相关文章:

typescript - 类属性未扩展为继承类型

javascript - 使用 switch 类延迟 javascript Action

javascript - 将 MDL 与 ASP.NET Blazor 结合使用

java - 如何将包含数组的 JSON 转换为 Java 对象

php - 在多个浏览器上同步用户输入

asp.net-mvc - 如何在带有 typescript 和 ASP.Net Core 的几个 html 页面中使用 vuejs 2

angular - ERROR 错误: Cannot find a differ supporting object 'No result' of type 'string' . NgFor只支持绑定(bind)到Iterables比如Arrays

javascript - meteor 前端如何有条件订阅数据?

javascript - Vue 键的类型转换 v-for

javascript - 如何在本地存储(或其他地方)中保存 ES6 map ?