在Nodejs中连接多个Json对象和一个键值



假设我有一个json对象数组:

[
{
name: "abc",
class: "12"
},
{
name: "abc",
Roll: "12"
},
{
name: "def",
class: "10"
},
{
name: "def",
Roll: "15"
}
]

那么,我需要一个输出,像这样:

[
{
name: "abc",
class: "12",
Roll: "12"
},
{
name: "def",
class: "10",
Roll: "15"
}
]

一个解决方案是通过name将对象分组在一起。在我们有了分组之后,我们可以合并每组中的对象。

function groupBy(array, key) {
return array.reduce((prev, current) => {
(prev[current[key]] = prev[current[key]] || []).push(current);
return prev;
}, {});
}

function main(array) {
// Group by objects by name
const groups = groupBy(array, 'name');

// Iterate through groups and merge the list of objects together 
const result = Object.values(groups).map(group => group.reduce((prev, current) => {
return {...prev, ...current};
}));
return result;
}
const objects = [
{
name: "abc",
class: "12"
},
{
name: "abc",
Roll: "12"
},
{
name: "def",
class: "10"
}, {
name: "def",
Roll: "15"
}];

console.log(main(objects));

相关内容

最新更新