TypeError:无法调用方法" getName"未定义的

时间:2017-05-11 14:15:32

标签: google-apps-script

我一直在编码:

    function deleteSheets(){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheets = ss.getSheets();


  for(var i = 0; i<=sheets.length; i++){

    var name = sheets[i].getName();

    if (name == "aux"){
      ss.deleteSheet(sheets[i]);
    }else if(name == "nulos"){

      ss.deleteSheet(sheets[i]);

      }



    /* switch(sheets[i].getName()){

      case sheets[i].getName() == "aux":
        ss.deleteSheet(sheets[i]);
        break;

      case sheets[i].getName() == "nulos":
        ss.deleteSheet(sheets[i]);
        break;

      case name == "aux":
        ss.deleteSheet(sheets[i]);
        break; 
  }

  */

}

}

试图做一个简单的&#34; deleteSheet&#34;使用开关,但没有工作,然后使用if只是为了看到同样的错误:

  

TypeError:无法调用方法&#34; getName&#34;未定义的。 (第8行,文件&#34;代码&#34;)

我错过了什么?很确定我以前做过类似的事情...... (如果它很明显,我很抱歉,我是

1 个答案:

答案 0 :(得分:1)

你的陈述错了。

您写道:

for(var i = 0; i<=sheets.length; i++){}

但是当i = sheets.length时,你已经离开了数组,所以你试着调用getName()什么都没有。你应该

for(var i = 0; i<sheets.length; i++){}

为避免这样的错误,请考虑使用

var i = 0
for(i in sheets){}

我自动增加。这里有一些关于for/in statement

的更多细节