为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2023-10-20 15:09:06
我有一个自定义 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]));
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

解决方案/说明:

您可以使用此方法将其转换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);


查看完整回答
反对 回复 2023-10-20
?
喵喔喔

TA贡献1735条经验 获得超5个赞

您可以简单地设置二维数组的值。

sheet.getRange(2,4,ArrValues.length,3).setValues(ArrValues)


查看完整回答
反对 回复 2023-10-20
  • 2 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信