Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Node.js_Angular_Underscore.js - Fatal编程技术网

使用下划线合并JavaScript中的数组对象?

使用下划线合并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

我有两个数组,我想把它们组合起来得到共同的结果。 数组应基于用户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_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你应该在你的问题中提到这一点。无论如何,我已经更新了我的答案。