【问题标题】:Combining 2 arrays in javascript在javascript中组合2个数组
【发布时间】:2012-07-10 22:23:19
【问题描述】:

我在 javascript 中有 2 个数组。

            var A = ['c++', 'java', 'c', 'c#', ...];
            var B = [12, 3, 4, 25, ...];

现在我想从这 2 个数组中创建另一个数组,例如:

  [['c++',12], ['java',3], ['c',4], ['c#', 25] ...];

在我的情况下,AB 数组都是可变长度的,我该怎么做呢?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

Underscore.js 擅长:

_.zip(*arrays)

将每个数组的值与 对应的位置。当您有单独的数据源时很有用 通过匹配数组索引进行协调。如果你在工作 使用嵌套数组矩阵, zip.apply 可以将矩阵转置为 类似的时尚。

_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
=> [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]

【讨论】:

    【解决方案2】:

    如果你不使用任何第三方库,你可以使用这个sn-p:

    var i = 0
      , n = A.length
      , C = [];
    
    for (; i < n; i++) {
        C.push([A[i], B[i]]);
    }
    

    【讨论】:

      【解决方案3】:
      function Merge(A,B){
          var length = Math.min(A.length,B.length);
          var result = [];
          for(var i=0;i<length;i++){
           result.push([ A[i], B[i] ]) 
          }
      
          return result;
      }
      

      【讨论】:

        【解决方案4】:

        我认为使用 hashMap 而不是 2 个数组可能是一个很好的解决方案。

        例如,您可以执行以下操作:

        var h = new Object(); // or just {}
        h['c++'] = 12;
        h['java'] = 3;
        h['c'] = 4;
        

        看看:

        http://www.mojavelinux.com/articles/javascript_hashes.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-22
          • 2014-12-16
          • 2021-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-02
          相关资源
          最近更新 更多