JavaScript/Google脚本-转置“;“世界其他地区”;将数组放入“中”;栏「;排列

JavaScript/Google脚本-转置“;“世界其他地区”;将数组放入“中”;栏「;排列,javascript,arrays,google-apps-script,transpose,Javascript,Arrays,Google Apps Script,Transpose,下午好 我试图将一个“行”数组(或1D数组)转换为一个“列”数组(或一个数组中包含单个数组的数组),以允许我将值设置为单个列(向下多行),而不是跨多个列设置为一行 我尝试使用推送循环和映射函数,但两次尝试均未成功: function myFunction2() { var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source1"); var lastColumn = ss.getLastCo

下午好

我试图将一个“行”数组(或1D数组)转换为一个“列”数组(或一个数组中包含单个数组的数组),以允许我将值设置为单个列(向下多行),而不是跨多个列设置为一行

我尝试使用推送循环和映射函数,但两次尝试均未成功:

function myFunction2() {

  var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source1");

  var lastColumn = ss.getLastColumn()

  var endRange = lastColumn-3

  //Retrieve values into array named "items"
  var items = ss.getRange(16,4,1,endRange).getValues()
转置尝试#1:

转置尝试#2:

尝试#2的输出:

我想要的预期输出是:

[[item1], [item2], [item3], [item4], [item5]]

是否有一种方法可以实现预期的输出?

var items=ss.getRange(16,4,1,endRange).getValues()的脚本中,
项是类似于
[[value1,value2,value3,,,,]
的二维数组。因此,当您的脚本被修改时,它变成如下所示

发件人: 致: 注:
  • 或者,当您想要转置包括多个行和列的值时,也可以使用以下脚本

      const colArray = items[0].map((_, i) => items.map(row => row[i]));
    
参考资料:
转置尝试#2按照您的预期输出工作和输出:
  var colArray = items.map(function (el){
      return [el];
  });
[[[item1, item2, item3, item4, item5]]]
[[item1], [item2], [item3], [item4], [item5]]
  var colArray = [];
    for (var i=0; i<items.length; i++)
    {
      colArray.push([items[i]]);
    }
}
var colArray = [];
for (var i = 0; i < items[0].length; i++) {
  colArray.push([items[0][i]]);
}
var colArray = items.map(function (el){
    return [el];
});
var colArray = items[0].map(function (el){
  return [el];
});
  const colArray = items[0].map((_, i) => items.map(row => row[i]));