亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數組的元素返回到谷歌表中的多列(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 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號