使用下划线合并JavaScript中的数组对象?
我有两个数组,我想把它们组合起来得到共同的结果。 数组应基于用户id而不是索引进行组合 我该怎么做 阵列1:使用下划线合并JavaScript中的数组对象?,javascript,arrays,node.js,angular,underscore.js,Javascript,Arrays,Node.js,Angular,Underscore.js,我有两个数组,我想把它们组合起来得到共同的结果。 数组应基于用户id而不是索引进行组合 我该怎么做 阵列1: var array1 = [{ "name": "Smart Test Pool", "user_id": 1, "total_time": "15.0", }]; var array2 = [{ "user_id": 1, "total_hours_worked_milliseconds": 60060000, "total_time_unshedule_mi
var array1 = [{
"name": "Smart Test Pool",
"user_id": 1,
"total_time": "15.0",
}];
var array2 = [{
"user_id": 1,
"total_hours_worked_milliseconds": 60060000,
"total_time_unshedule_milliseconds": 540000
}];
阵列2:
var array1 = [{
"name": "Smart Test Pool",
"user_id": 1,
"total_time": "15.0",
}];
var array2 = [{
"user_id": 1,
"total_hours_worked_milliseconds": 60060000,
"total_time_unshedule_milliseconds": 540000
}];
结果:
var result = [{
"name": "Smart Test Pool",
"user_id": 1,
"total_time": "15.0",
"total_hours_worked_milliseconds": 60060000,
"total_time_unshedule_milliseconds": 540000
}];
可以使用以下命令合并对象: 1-普通JS方法: 您可以使用
.map()
、.find()
和Object.assign()
:
或扩展语法:
let result = array1.map((o, i) => (
{...o,...array2.find(o2 => o2["user_id"] === o["user_id"])}
));
演示:
让数组1=[{
“名称”:“智能测试池”,
“用户id”:1,
“总时间”:“15.0”,
}];
设array2=[{
“用户id”:1,
“总工作小时数(毫秒)”60060000,
“总时间不可减少的毫秒数”:540000
}];
让result=array1.map(o=>Object.assign(
{},o,array2.find(o2=>o2[“用户id”]==o[“用户id”])
));
控制台日志(结果)代码>在我看来,您似乎想要组合数组元素的属性,而不是数组本身。然后,我假设您希望将第一个数组的元素0与下一个数组的元素0组合起来。这是正确的吗?请拿着这本书,通读一遍,特别是做你的研究,看看相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。祝你好运如果您使用es2015,您可以执行,var arr1=['item1','item2'];var arr2=['item3','item4'];var merge=[…arr1,…arr2]
,检查此项:假设您有[{data1}]和[{}{data2}]形式的数据。。。现在您想要[{data1 data 2}]吗。。这只是其中一种可能性,然后可能有很多这样的可能性……让选民失望:我的答案有问题吗?如果是,请让我知道。我想在用户id上合并,而不是在index@Rahul你应该在你的问题中提到这一点。无论如何,我已经更新了我的答案。