【问题标题】:Concatenate Arrays -how to concat two dimensional arrays in javascript?连接数组 - 如何在 javascript 中连接二维数组?
【发布时间】:2015-05-11 10:16:55
【问题描述】:

我在 JavaScript 中有以下两个数组:

var array1=[[6, 12, 18],[7, 13, 19],[6, 12, 18],[7, 13, 19],[6, 12, 18],[6, 12, 18]];
var array2=[0,1,2,3,4,5]; 

如何连接上述数组,以便将 array2 的每个元素插入到每个 array1 的末尾。 结果应该是这样的

var merge array=[[0, 6, 12, 18],[1, 7, 13, 19],[2, 6, 12, 18],[3, 7, 13, 19],[4, 6, 12, 18],[5, 6, 12, 18]]

【问题讨论】:

  • 不是串联
  • 在您的示例中,您将 array2 的值添加到 开始,而不是结束。
  • 如果 Underscore.js 是一个选项,_.zip 是一个很好的解决方案
  • 我只想将值插入到数组的开头。
  • 问题正文说“最后”。你可能想解决这个问题。

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

var array1=[[6, 12, 18],[7, 13, 19],[6, 12, 18],[7, 13, 19],[6, 12, 18],[6, 12, 18]];
var array2=[0,1,2,3,4,5];

var merged_array = array1.map(function (value, index) {
  value.unshift(array2[index]);
  return value;
});

alert(JSON.stringify(merged_array));

【讨论】:

【解决方案2】:
var array1=[[6, 12, 18],[7, 13, 19],[6, 12, 18],[7, 13, 19],[6, 12, 18],[6, 12, 18]];
var array2=[0,1,2,3,4,5];

$.each(array1,function(index,val){
   val.unshift(array2[index]);
});

【讨论】:

  • 好答案,除了示例显示添加到开头的值,因此您应该使用unshift 而不是push
  • 我不想在这里看到 jQuery 依赖...我更喜欢看到 ES5shim 依赖(特别是考虑到 IE8 的应用很少)
【解决方案3】:

这样的事情应该可以做到。请注意,这取决于您的数组具有相同的长度。

for (var i = 0; i < array2.length; i++)
{
   array1[i].unshift(array2[i]);
}

【讨论】:

  • 见下面 Rory 的评论。
猜你喜欢
  • 2012-11-23
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
相关资源
最近更新 更多