【问题标题】:Node.js object array data joinsNode.js 对象数组数据连接
【发布时间】:2012-07-29 08:03:36
【问题描述】:

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

效率在这里至关重要,因为它可以在生产中处理巨大的数组

【问题讨论】:

    标签: javascript arrays node.js multidimensional-array set


    【解决方案1】:

    您对如何识别和合并对象不是很具体。

    使用下划线可以得到如下结果:

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

    这就是你要找的吗?

    【讨论】:

      猜你喜欢
      • 2016-05-10
      • 1970-01-01
      • 2018-01-15
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多