通过组合另一个数组的两列来形成一个新的javascript数组

时间:2016-09-13 10:54:17

标签: javascript arrays

我试图在javascript中形成一个新的数组,它包含两个1维数组(长度相同)。

var A = [1,2,3];
var B = [20, 10, 30];

我想创建C:

C = [[1,20],[2,10],[3,30]];

这似乎是一个相当简单的问题。我想知道是否有一个我可以使用的功能(以避免循环)。也许有array.from或地图的东西?我在弄清楚它是如何工作时遇到了一些麻烦。

2 个答案:

答案 0 :(得分:3)

您可以尝试以下



 var A = [1, 2, 3];
 var B = [20, 10, 30];

 var C = A.map(function(item, index) {
   return [item, B[index]]

 });

 console.log(C);




答案 1 :(得分:1)

对于相同长度的数组,我们可以使用地图功能 - Nikhil的答案

如果两个阵列的长度不同,我只是提供更多信息。

 function mixArray(a, b) {
   if (a.length < b.length) {
     var j = Array(b.length-a.length).fill('');  
     a = a.concat(j);
   }

 return a.map(function(item, index) {
     var tempArr = [];
     if (item !== '') {
       tempArr.push(item);
     }
     if (b[index] !== undefined) {
       tempArr.push(b[index]);
     }
     return tempArr;
  });

}

输入

var a = [1, 2, 3, 7, 8, 9];
var b = [20, 10, 30, 5];
console.log(mixArray(a,b));  // [[1, 20], [2, 10], [3, 30], [7, 5], [8], [9]]

var a = [1, 2];
var b = [20, 10, 30, 5];
console.log(mixArray(a,b)); // [[1, 20], [2, 10], [30], [5]]

希望这有帮助!谢谢 演示:https://jsbin.com/dusuna/edit?html,js,console