根据ID将json数组转换为单个数组

时间:2019-04-24 20:30:59

标签: 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}]

1 个答案:

答案 0 :(得分:2)

像这样的事情,也许有更有效的解决方案,我在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)