使用键值组合数组中的对象值

时间:2019-05-02 13:01:28

标签: javascript arrays duplicates javascript-objects

我正在尝试按照ID对follow数组进行分组。

我曾经尝试过使用lodash,但我的结果也是复制id,即"id":[6,6,6,6]

这是我现有的数组;

[
  {
    "nestedGroups": 64,
    "id": 6
  },
  {
    "nestedGroups": 27,
    "id": 6
  },
  {
    "nestedGroups": 24,
    "id": 6
  },
  {
    "nestedGroups": 69,
    "id": 6
  }
]

我的预期结果是使用id作为键将nestedGroups组合成一个数组。

[
  {
    "nestedGroups": [64,27,24,69],
    "id": 6
  }
]

1 个答案:

答案 0 :(得分:1)

您可以使用reduce()find()

let arr = [ { "nestedGroups": 64, "id": 6 }, { "nestedGroups": 27, "id": 6 }, { "nestedGroups": 24, "id": 6 }, { "nestedGroups": 69, "id": 6 } ]

const res = arr.reduce((ac,a) => {
  let temp = ac.find(x => x.id === a.id);
  if(!temp) ac.push({...a,nestedGroups:[a.nestedGroups]})
  else temp.nestedGroups.push(a.nestedGroups)
  return ac;
},[])
console.log(res)