2012-07-31 87 views
0

是否有任何文庫或有效的技術來執行陣列中節點JS加入使得Node.js的對象陣列數據連接

A = [ { a: 1, b: 'a' }, { a: 2, b:'b' }, { a: 3, b: 'a' }, { a: 4, b: 'b' } ] 
B = [ { a: 1, c: true }, { a: 2, c: true }, { a: 3, c: false } ] 

可以結合在一起,使得下面的結果可以製造:

# Intersection on a 
C = [ { a: 1, b: 'a', c: true }, { a: 2, b: 'b', c: true }, { a: 3, b: 'a', c: false } ] 

# Union on a 
D = [ { a: 1, b: 'a', c: true }, { a: 2, b: 'b', c: true }, { a: 3, b: 'a', c: false }, { a: 4, b: 'b' } ] 

是array.map這個問題的最佳解決方案?

效率是這裏最重要的,因爲它可以在生產

+0

你試過了什麼? – 2012-07-31 15:28:10

回答

0

來處理龐大的陣列你不是很具體你如何識別和合並的對象。

使用下劃線,結果可以得到如下:

_u=require("underscore") 
A = [ { a: 1, b: 'a' }, { a: 2, b:'b' }, { a: 3, b: 'a' }, { a: 4, b: 'b' } ] 
B = [ { a: 1, c: true }, { a: 2, c: true }, { a: 3, c: false } ] 

D = _u.zip(A,B).map( 
     function(x){ 
     return _u.extend(x[0],x[1]); 
     } 
    ); 

C = _u.zip(A,B).filter(
     function(x){ 
     return !!x[1]; 
     } 
    ).map(
     function(x){ 
     return _u.extend(x[0],x[1]); 
     } 
    ); 

這就是你想要的?