我正在开发一个nodejs应用程序,需要将两个文档数组连接在一起。我有一个ID字段可用于加入,但不确定如何优雅地实现所需的输出。请参见下面的示例数组。
array 1
[{"id": 1,
"name": "paul"
},
{"id": 2,
"name": "sarah"
}
]
array 2
[{"id": 1,
"email": "p@test.co.uk"
},
{"id": 2,
"email": "s@test.co.uk"
}
]
output
[{"id": 1,
"name": "paul",
"email": "p@test.co.uk"
},
{"id": 2,
"name": "sarah",
"email": "s@test.co.uk"
}
]
答案 0 :(得分:0)
您可以结合使用Object.assign
方法和map
函数来获得所需的输出。
对于map
方法,您必须传递回调提供的函数作为参数,该函数将应用于给定array
中的每个项目。
arr1 = [{"id": 1, "name": "paul" }, {"id": 2, "name": "sarah" } ], arr2 = [{"id": 1, "email": "p@test.co.uk" }, {"id": 2, "email": "s@test.co.uk" } ]
let final = arr1.map(function(item){
return Object.assign(item, arr2.find(({id}) => id == item.id));
});
console.log(final);
或者直接使用arrow
函数。
arr1 = [{"id": 1, "name": "paul" }, {"id": 2, "name": "sarah" } ], arr2 = [{"id": 1, "email": "p@test.co.uk" }, {"id": 2, "email": "s@test.co.uk" } ]
let final = arr1.map((item) => Object.assign(item, arr2.find(({id}) => id == item.id)));
console.log(final);
答案 1 :(得分:0)
您可以通过结合使用ES6 http://example.com/index.php?id=abc (if i clicked on http://example.com/Test/abc)
,map
和find
来实现:
Object.assign