0

例如,我有两个对象数组

[
 {
   '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':2,
   'value':'someval for id 2 ',
   'score':1     
 },
 {
   'id':3,
   'value':'someval for id 3',
   '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     
 }
]

所以,我希望同步在这个规则上起作用

  1. 如果具有 id 的项不存在于数组之一中,则从存在的数组中复制它
  2. 如果两个项目具有相同的 id,我们保留得分较高的项目

是否有任何库或节点模块可以对相当大的数组进行同步(首选 nodejs 模块)?

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

4

1 回答 1

0

我不认为有现成的模块可以实现这一点,但 Underscore 提供了一些关于数组和集合的良好实用功能,可以使您的代码更容易编写。似乎 zip、group by 和 max 的某种组合可以解决问题。

http://underscorejs.org/

于 2013-10-14T02:40:28.587 回答