我有一個谷歌電子表格,可以通過谷歌表單獲取資料。每次記錄表單時,它都會觸發一個腳本,該腳本使用以下命令從某個部分獲取值:
var tabNumsVal = sheet.getSheetValues(lastRow, tabOneCol.getColumn(), 1, 6)[0];
當我檢查陣列時,我可以看到陣列具有如下值:
0:12
1:24
2:26W
3:0
4:0
5:0
但是,當我使用以下命令時,它將索引號(0 到 5)而不是陣列中的值放入陣列中。
var tabNumsFinal = [];
for (var tabard in tabNumsVal) {
if (tabard !== "") {
tabNumsFinal.push(tabard);
}
}
它曾經可以作業,但我不得不將我的代碼升級到 Google Script v8,這似乎破壞了代碼。我不得不將“for each”代碼塊更改為“for”代碼塊,這似乎以不同的方式處理值。
我很確定這對很多人來說很簡單,但我真的每年只接觸 Google Script 1 次。我曾嘗試使用Logger.log(tabard)將資料輸出到執行日志,但它只是遍歷代碼并且不輸出任何內容。我想這可能是因為!== ""運算子,所以我把它放在 if 陳述句之上,但仍然在 for 陳述句中,它仍然不輸出任何內容。我嘗試使用Logger.log(tabNumsVal)并Logger.log(tabNumsFinal)再次它不輸出任何內容。
總結一下:表單中的資料正確回傳到電子表格的列中,因此它正確顯示在陣列中。只是輸出的是索引號而不是陣列中的值。
uj5u.com熱心網友回復:
由于您使用 for in 回圈,因此 tabard 是此處的索引。
var tabNumsFinal = [];
for (var i in tabNumsVal) {
let val = tabNumsVal[i];
if (val !== "") {
tabNumsFinal.push(val);
}
}
for 回圈
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343970.html
上一篇:下一個可用行中的GoogleSheetsIncrement公式
下一篇:從APIJson獲取價值
