2013-10-13 22 views
0

例如,我有對象使用Javascript - 同步2個數組對象

[ 
{ 
    '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模塊)?

我應該從哪裏開始研究,以正確的方式做出這個功能?

+1

是兩個數組總是排序'id'這樣呢?他們有多大? –

+0

不,沒有排序,但他們可以排序,如果我們需要它。數組的大小是1000到10000個元素,所有這些代碼都必須在nodejs中執行,而不是在瀏覽器中執行... – vodolaz095

回答

0

我不認爲有一個現成的模塊來完成這一任務,但Underscore提供了一些很好的數組和集合的實用函數,可以使您的代碼更容易編寫。看起來像拉鍊,組合,和馬克斯的一些組合將做的伎倆。

http://underscorejs.org/