Javascript-同步2个对象数组

Javascript-同步2个对象数组,javascript,arrays,node.js,synchronization,Javascript,Arrays,Node.js,Synchronization,例如,我有两个对象数组 [ { 'id':1, 'value':'someval for id 1', 'score':1 }, { 'id':2, 'value':'someval for id 2 with score 2', 'score':2 }, { 'id':4, 'value':'someval for id 2', 'score':1 } ] 及 我想把它们同步成这样 [ {

例如,我有两个对象数组

[
 {
   'id':1,
   'value':'someval for id 1',
   'score':1     
 },
 {
   'id':2,
   'value':'someval for id 2 with score 2',
   'score':2     
 },
 {
   'id':4,
   'value':'someval for id 2',
   'score':1     
 }
]

我想把它们同步成这样

[
 {
   'id':1,
   'value':'someval for id 1',
   'score':1     
 },
 {
   'id':2,
   'value':'someval for id 2 with score 2',
   'score':2     
 },
 {
   'id':3,
   'value':'someval for id 3',
   'score':1     
 },
 {
   'id':4,
   'value':'someval for id 2',
   'score':1     
 }
]
所以,我想让同步在这个规则上工作

  • 如果其中一个数组中不存在id为的项,则会从存在的数组中复制该项
  • 如果两个项目具有相同的id,我们将保留分数较高的项目
  • 是否有任何库或节点模块可以为相当大的阵列(首选nodejs模块)执行此同步


    我应该从哪里开始研究以适当的方式实现此功能?

    我认为没有现成的模块来实现此功能,但下划线在数组和集合上提供了一些很好的实用函数,可以使代码更易于编写。似乎zip、group by和max的某种组合会起作用


    这两个数组是否总是按
    id
    这样排序?它们能有多大?不,不能分类,但如果我们需要的话可以分类。数组大小为1000到10000个元素,所有这些代码都必须在nodejs中执行,而不是在浏览器中执行。。。
    [
     {
       'id':1,
       'value':'someval for id 1',
       'score':1     
     },
     {
       'id':2,
       'value':'someval for id 2 with score 2',
       'score':2     
     },
     {
       'id':3,
       'value':'someval for id 3',
       'score':1     
     },
     {
       'id':4,
       'value':'someval for id 2',
       'score':1     
     }
    ]