将对象数组转换为具有相似字段值的数组对象

时间:2020-06-23 05:35:41

标签: arrays object

var array = [{"name":"Vani","Id":"1"},{"name":"Random","Id":"1"},{"name":"Random1","Id":"2"},{"name":"Random2","Id":"2"}];

使用基于唯一字段值id的reduce转换为以下对象:

var obj = {"1":[{"name":"Vani","Id":"1"},{"name":"Random","Id":"1"}],"2":[{"name":"Random1","Id":"2"},{"name":"Random2","Id":"2"}]}

1 个答案:

答案 0 :(得分:0)

您可以使用.reduce()方法来获得所需的输出:

const data = [{"name":"Vani","Id":"1"},{"name":"Random","Id":"1"},{"name":"Random1","Id":"2"},{"name":"Random2","Id":"2"}];

const result = data.reduce((r, c) => {
  r[c.Id] = r[c.Id] || [];
  r[c.Id].push(c);
  return r;
}, {});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }