JavaScript/Google脚本-转置“;“世界其他地区”;将数组放入“中”;栏「;排列
下午好 我试图将一个“行”数组(或1D数组)转换为一个“列”数组(或一个数组中包含单个数组的数组),以允许我将值设置为单个列(向下多行),而不是跨多个列设置为一行 我尝试使用推送循环和映射函数,但两次尝试均未成功: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
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]));