Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较阵列中的对象,合并具有相同属性值的重复项,向合并对象添加属性值_Javascript_Node.js_Arrays_Javascript Objects - Fatal编程技术网

Javascript 比较阵列中的对象,合并具有相同属性值的重复项,向合并对象添加属性值

Javascript 比较阵列中的对象,合并具有相同属性值的重复项,向合并对象添加属性值,javascript,node.js,arrays,javascript-objects,Javascript,Node.js,Arrays,Javascript Objects,我有一个对象数组,如果对象在对象键电子邮件中具有相同的属性,我希望合并对象。需要将重叠特性添加到合并对象中。使用新的对象关键点将是最好的。 这似乎有点复杂 [ { email: 'one@xyz.de', SearchQuery: 'Abts, Tomma', SearchResult: 1 }, { email: 'one@xyz.de', SearchQuery: 'Ernst, Max', SearchResult: 3}, { email: 'on

我有一个对象数组,如果对象在对象键电子邮件中具有相同的属性,我希望合并对象。需要将重叠特性添加到合并对象中。使用新的对象关键点将是最好的。 这似乎有点复杂

[ { email: 'one@xyz.de',
    SearchQuery: 'Abts, Tomma',
    SearchResult: 1 },
  { email: 'one@xyz.de',
    SearchQuery: 'Ernst, Max',
    SearchResult: 3},
  { email: 'one@xyz.de',
    SearchQuery: 'Sigmund Abeles ',
    SearchResult: 1 },
  { email: 'two@xyz.de',
    SearchQuery: 'Barlach',
    SearchResult: 4 } ]
结果应该是这样的

[ { email: 'one@xyz.de',
    SearchQuery: 'Abts, Tomma',
    SearchResult: 1 
    SearchQueryTwo: 'Ernst, Max',
    SearchResultTwo: 3
    SearchQueryThree: 'Sigmund, Abeles ',
    SearchResultThree: 1 },
    { email: 'two@xyz.de',
    SearchQuery: 'Barlach',
    SearchResult: 4 } 
]

searchresulttone
SearchResultTwo
SearchResultThree
等是可能的,但比实际困难得多,因此将其放入数组更有意义:

const inp=[{email:'one@xyz.de',
SearchQuery:'Abts,Tomma',
搜索结果:1},
{电子邮件:'one@xyz.de',
SearchQuery:'Ernst,Max',
搜索结果:3},
{电子邮件:'one@xyz.de',
SearchQuery:'Sigmund Abeles',
搜索结果:1},
{电子邮件:'two@xyz.de',
SearchQuery:'Barlach',
搜索结果:4}];
常数组=输入减少((acc,o)=>
{
const queryResult=acc.find(qr=>qr.email==o.email);
如果(查询结果)
{
queryResult.results.push({SearchResult:o.SearchResult,SearchQuery:o.SearchQuery})
}
其他的
{
让newQR={email:o.email,结果:[{SearchResult:o.SearchResult,SearchQuery:o.SearchQuery}]};
acc.push(新QR);
}
返回acc;
}, []);

log(JSON.stringify(oup))你被困在哪里了,你能发布你尝试了什么吗?也许不用SearchQuery、SearchQueryTwo等,用它制作一个数组?这样,每个对象将始终具有相同数量的属性。谢谢!对于所有有兴趣在之后展平结果数组的人,请检查: