【问题标题】:Transpose a two dimensional Array with one row and many columns into a two dimensional array with many rows and one column将一行多列的二维数组转置为多行一列的二维数组
【发布时间】:2020-10-05 05:52:15
【问题描述】:

我有一个二维数组,其中一行多列。我想把它转换成一列多行的二维数组变量。

var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(market);
var shrinkLog = SpreadsheetApp.openById("1h3B4HN4mEnBvlx-8aNa9_2ooEZrkY_qLuJcuJXZq7dM").getSheetByName(market);

var dataArr = shrinkLog.getRange(2,3,1,shrinkLog.getLastColumn()).getValues();

我认为答案在 map 函数中,但不断返回错误,或者获得相同一维数组的不同版本。非常感谢您的帮助。

【问题讨论】:

  • 很遗憾,我无法理解I think the answer is in the map function, but keep returning errors, or getting different versions of the same one dimensional array.。所以我不确定var dataArr = shrinkLog.getRange(2,3,1,shrinkLog.getLastColumn()).getValues()[0].map(c => [c]); 是否是您问题的解决方案。我可以问你这个吗?
  • 所以,你有[data1, data2, data3, ...],你想要[[data1, data2, data3, ...]]
  • @Jaromanda X shrinkLog.getRange(2,3,1,shrinkLog.getLastColumn()).getValues() 返回[[data1, data2, data3,,,]]。所以我认为OP的目标可能是[[data1], [data2], [data3],,,]]。但不幸的是,我不确定正确的目标。

标签: javascript arrays google-apps-script google-sheets transpose


【解决方案1】:

我猜你的目标如下。

  • var dataArr = shrinkLog.getRange(2,3,1,shrinkLog.getLastColumn()).getValues(),您想检索从[[data1, data2, data3,,,]][[data1], [data2], [data3],,,]] 的结果。

在您的情况下,shrinkLog.getRange(2,3,1,shrinkLog.getLastColumn()).getValues() 返回[[data1, data2, data3,,,]]。所以当你用map达到你的目的时,修改后的脚本如下。

示例脚本:

var dataArr = shrinkLog.getRange(2,3,1,shrinkLog.getLastColumn()).getValues()[0].map(c => [c]);

注意:

  • 在这种情况下,请启用 V8 运行时。

参考:

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2021-09-25
    • 2012-08-15
    • 2019-05-22
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多