Arrays Google脚本数组值未定义

Arrays Google脚本数组值未定义,arrays,google-apps-script,google-sheets-api,Arrays,Google Apps Script,Google Sheets Api,我编写了一个代码,它应该从单元格中获取一个值,然后将其转换为字符串,再转换为数组。工作正常。我可以将日志中的arr值视为带有单元格输入的数组。例如,单元格中为dog,cat,日志中的arr值为[dog,cat] 但是在我创建这个数组之后,我想在它上面做一个循环。在日志中,我发现arr是未定义的。谁能帮帮我吗?我为此工作了2天: 这是我的密码: function animal (s,z){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh

我编写了一个代码,它应该从单元格中获取一个值,然后将其转换为字符串,再转换为数组。工作正常。我可以将日志中的arr值视为带有单元格输入的数组。例如,单元格中为dog,cat,日志中的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());
  }
}

}

您不需要将arr初始化为空,您可以直接将其初始化为split方法的结果,还有一点我不明白,为什么您需要将arr分配给foo?您可以直接遍历arr.length并执行所需的操作

这是我的工作片段

var parts = path.split(",");
  for (var i = 0; i < parts.length; i++) {
    if (parts[i] == 'dog'){ 
        Logger.log(parts[i]);
    }
  }

非常感谢您的快速回答。正如您所说,我编辑了我的函数,但它只对其中的名字“狗”起作用,而对“猫”不起作用。有什么想法吗?请提供excel表值样本以供进一步检查。同样,这个问题在Javascript中似乎更为具体。正如您在同一主题上的上一个问题一样,当您迭代数组foo时,您正在访问一个未定义的索引:您的问题和标题不匹配-您没有返回任何内容。请编辑您的问题,同时考虑在迭代时记录每个数组元素的值,即Logger-LogaR[i];如果arr[i]==。。。