Node.js对象数组数据联接

Node.js object array data joins

本文关键字:数据 数组 js 对象 Node      更新时间:2024-07-01

是否有任何库或有效的技术可以在节点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是解决这个问题的最佳方案吗?

效率在这里是最重要的,因为它可能在生产中处理巨大的阵列

您对如何识别和合并对象并不十分明确。

使用Undercore,可以获得如下结果:

_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]);
      }
    );

这就是你要找的吗?