在GAS / JS

时间:2016-09-01 09:17:40

标签: javascript arrays google-apps-script

我想要水平合并的几个数组:

data1 =   [["ID"], [21], [26], [32]]

data2 = [["A", "B", "C"],[10, 10, 10], [95, 95, 95], [95, 95, 95]]

两个数组总是具有相同数量的"行"

我正在寻找这个结果:

result = [["ID", "A" , "B", "C"],[21, 10, 10, 10]...]

目前我有以下代码:

for ( var i = 0; i < data1.length; i++ ) {
  data3.push( [ data1[i], data2[i] ] );
}

这给了我一个奇怪的结果,我不明白为什么。

[[[&#34; A&#34;],[10,10,10]]]

有任何帮助吗?我总是在与阵列斗争。

1 个答案:

答案 0 :(得分:0)

这不是一个奇怪的结果。 为了达到你的需要,请试试这个

 data3.push( data2[i].unshift(data1[i][0]) );

假设:A,B,C是字符串,如'A'

建议:您应该遵循更好的数据结构。但仍尝试以下解决方案。数组索引从1开始。你一直在改变问题,我需要相应地更新我的答案。我尝试了以下,它对我有用。

var data1 = [["ID"], [21], [26], [32]];

var data2 = [["A", "B", "C"],[10, 10, 10], [95, 95, 95], [95, 95, 95]];

var data3 = [];

  for ( var i = 0; i < data1.length; i++ ) {
      data2[i].unshift(data1[i][0]);
      data3.push(data2[i] );
    }
 console.log(data3)

给我以下输出

[["ID","A","B","C"], [21, 10, 10, 10], [26, 95, 95, 95] ,[32, 95, 95, 95]]