【问题标题】:Append a multidimensional array to the bottom of a different multidimensional array javascript将多维数组附加到不同多维数组javascript的底部
【发布时间】:2019-11-21 16:26:21
【问题描述】:

我有两个维度为 arr1 和 arr2 的数组。我想将 arr2 添加到 arr1 的底部

即我想将 arr2 作为行而不是列附加到 arr1。

我将它用于一维数组以将 arr2 作为列添加到 arr1,但我不知道如何更改它以添加行而不是列

如果

arr1 =  [[Id, From, To], [1.0, AA1, BB1], [2.0, AA2, BB2], [3.0, AA3, BB3]]

arr2 = [[Id, From, To], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]

result =  [[Id, From, To], [1.0, AA1, BB1], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]

谢谢

function conatArr(arr1, arr2) {

 var result = arr1.map(function(row, i){
 return row.concat(arr2[i]);
})
return result
}

【问题讨论】:

  • 你能提供两个数组和结果数组的简单例子吗?
  • 反向参数(arr2, arr1)
  • 我忘记了示例数据,对此感到抱歉
  • 我尝试颠倒参数但没有成功,或者我做错了

标签: javascript arrays append


【解决方案1】:

试试这个,不是很聪明,但它适用于您的示例数据

function combineArrays(shtName, arr1,arr2) {
 var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shtName);
 var result =[];

for (i=0;i< arr1.length + arr2.length;i++) {
  if(i < arr1.length) {result[i]=arr1[i]}
  else{result[i] = arr2[i-arr1.length]}
}

这是更好的方法:

function conatArrAsRows(shtName, arr1, arr2, postback) {
var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shtName);

var result = arr1.concat(arr2);

if(postback == true) {sht.getRange(1,1,result.length,result[0].length).setValues(result)};
return result
}

【讨论】:

    【解决方案2】:

    只需将push 输入结果

    arr1 =  [["Id", "From", "To"], [1.0, "AA1", "BB1"], [2.0, "AA2", "BB2"], [3.0, "AA3", "BB3"]]
    
    arr2 = [["Id", "From", "To"], [4.0, "AA4", "BB4"], [5.0, "AA5", "BB5"], [6.0, "AA6", "BB6"]]
    
    var result = [];
    
    result.push(arr1[0]);
    
    for (i = 1; i < arr1.length; i++)
    {
      result.push(arr1[i]);
      result.push(arr2[i]);  
    }
    
    console.log(result);

    【讨论】:

    • 我试图找出这样的解决方案但失败了,感谢您向我展示如何做到这一点
    【解决方案3】:

    您可以简单地使用...spread syntax 来合并两个数组

    let arr1 =  [['Id', 'From', 'To'], [1.0, 'AA1', 'BB1'], [2.0, 'AA2', 'BB2'], [3.0, 'AA3', 'BB3']]
    
    let arr2 = [['Id', 'From', 'To'], [4.0, 'AA4', 'BB4'], [5.0, 'AA5', 'BB5'], [6.0, 'AA6', 'BB6']]
    
    let final = [...arr1, ...arr2.slice(1)]
    
    console.log(final)

    【讨论】:

      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2014-10-04
      • 2019-06-13
      • 1970-01-01
      相关资源
      最近更新 更多