【发布时间】:2018-03-27 22:19:27
【问题描述】:
我编写了一个代码,它应该从一个单元格中获取一个值,然后将其转换为字符串,而不是转换为数组。它工作正常。我可以在 Logs 中看到 arr 的值作为单元格输入的数组。例如,单元格中有“dog, cat”,而 Logs 中的 arr 值为 [dog, cat]。
但是在我创建了这个数组之后,我想在它上面做一个循环。与我在日志中相比,arr 是未定义的。有人可以帮我吗?我工作了 2 天 :(
这是我的代码:
function animal (s,z){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var range = sheet.getRange("SM");
var columnNumber = getColumnNumberOfSM(s);
var rowNumber = getRowNumberOfSM(z);
var colAction = columnNumber + 1;
var action = sheet.getRange(rowNumber, colAction, 1, 1).getValues();
var bar = action.toString();
var arr = [{}];
arr = bar.split(", ");
//return arr; // returns an array [dog, cat]
var foo = arr; // underfined
for (var i = 0; i <= foo.length; ++i) {
if (foo[i] == "dog") {
Logger.log(upload());
}
}
}
现在我编辑了我的代码,它工作正常,但只有“狗”而不是“猫”
function animal(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var action = sheet.getRange("C3").getValue();
var bar = action.toString();
var arr = bar.split(", ");
for (var i = 0; i <= arr.length; ++i) {
if (arr[i] == "dog") { // works
Logger.log(upload());
}
if (arr[i] == "cat") { // doesn't work
Logger.log(upload());
}
}
}
【问题讨论】:
-
就像您之前关于同一主题的问题一样,您在迭代数组时访问未定义的索引
foo:stackoverflow.com/questions/6571451/… 您的问题和标题不匹配 - 您没有返回任何内容.请将您的问题编辑为 clearly state your issue and your research into the issue 考虑在迭代时记录每个数组元素的值,即Logger.log(arr[i]); if (arr[i] == ...)
标签: arrays google-apps-script google-sheets-api