2017-05-11 37 views
2

法“的getName”我一直在编写此:类型错误:无法调用未定义

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; 
    } 

    */ 

} 

} 

试图做一个简单的“deleteSheet”与开关,没有工作,然后用,如果只是为了看到相同的错误:

TypeError: Cannot call method "getName" of undefined. (line 8, file "Code")

我错过了什么?很确定我已经做过类似的事情了...... (如果很明显,我很抱歉,我是noob)

回答

1

您在for语句中犯了一个错误。

您写道:

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

但是当我= sheets.length,你出你的阵列,让你尝试的任何调用的getName()。你应该有

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

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

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

其中i自动递增。这里一些更多的细节for/in statement

+0

老兄,你又解决了我的问题,你摇滚!我将从现在开始以这种方式使用这个......在那个哈哈哈上疯了。谢谢! –

相关问题