猿问

将数组的元素返回到谷歌表中的多列(GAS/JS)

我有一个自定义 GAS 函数,每次调用都会返回 3 个字符串值。每 3 个值将被推入一个数组中。因此,在调用该函数 3 次后,我在数组中有以下值:-

ArrValues=[["String1","Pattern1","Mesh1"],["String2","Pattern2","Mesh2"],["String3","Pattern3","Mesh3"]];

我希望所有这些值都相应地列在 gsheet 中,如下所示:-

目前,我编码如下以获得预期输出:-

sheet.getRange(2,4,ArrValues.length,1).setValues(ArrValues.map(ArrValues=>[ArrValues[0]]));
sheet.getRange(2,5,ArrValues.length,1).setValues(ArrValues.map(ArrValues=>[ArrValues[1]]));
sheet.getRange(2,6,ArrValues.length,1).setValues(ArrValues.map(ArrValues=>[ArrValues[2]]));

我也可以使用“for...”循环来实现相同的效果,如下所示:-

for(i=0;i<ArrValues.length;i++){
    sheet.getRange(2,i+4,ArrValues.length,1).setValues(ArrValues.map(ArrValues=>[ArrValues[i]]));}

我想知道是否有更简单的 1 行代码,它只会遍历元素一次并同时返回其自己的单独列中的所有值?我在下面尝试过,但它不起作用。

sheet.getRange(2,4,ArrValues.length,3).setValues(ArrValues.map(ArrValues=>[ArrValues]));


一只萌萌小番薯
浏览 123回答 2
2回答

犯罪嫌疑人X

解决方案/说明:您可以使用此方法将其转换ArrValues为形状为 的二维数组3x3:const ArrValues=["String1","Pattern1","Mesh1","String2","Pattern2","Mesh2","String3","Pattern3","Mesh3"];const newArr = [];while(ArrValues.length) newArr.push(ArrValues.splice(0,3));然后使用一行代码将它们粘贴到工作表中:sheet.getRange(2,1,newArr.length,newArr[0].length).setValues(newArr);如果您有更多列/数据,请更改函数3中的参数splice。后者定义要将数据拆分为的列数。例如,如果ArrValues由元素组成10,并且您想要创建一个2列和5行的数组 (2x5=10),则使用,splice(0,2)因为您需要2列。同样,如果您想要每2行5元素,则使用splice(0,5).结果:const ArrValues=["String1","Pattern1","Mesh1","String2","Pattern2","Mesh2","String3","Pattern3","Mesh3"];const newArr = [];while(ArrValues.length) newArr.push(ArrValues.splice(0,3));console.log(newArr);

喵喔喔

您可以简单地设置二维数组的值。sheet.getRange(2,4,ArrValues.length,3).setValues(ArrValues)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答