2017-10-03 11 views
0

google-apps-scriptを変更して、特定のラベルのメールをフォローアップするためのイベントをGoogleカレンダーに作成しようとしています。その側を私は世話します。私が抱えている問題は、TypeErrorを取得することです:スクリプトを実行しようとすると、未定義のメソッド "push"を呼び出せません。私はここで間違いを見ていないので、どんな助けも大いに評価されるでしょう。TypeError:未定義のメソッド "push"を呼び出すことができません

function ReadEmails() { 

    var thread, subject, body, from, 
     date, emails, index, event = [], i; 

    var mySheet = SpreadsheetApp.getActiveSpreadsheet(); 

    var LABEL = mySheet.getRange("D5").getValue(); 
    var TOTAL = mySheet.getRange("D7").getValue(); 

    emails = GmailApp.search("label:" + LABEL); 
    var count = emails.length; 

    if (count == 0) 
    return; 

    if (count > TOTAL) 
    index = getIndex(TOTAL, 0, count); 
    else {  
    for (i=0; i<count; i++) 
     index.push(i); 
    } 

    for (i=0; i<TOTAL; i++) { 

    var n = index[i]; 

    if (emails[n]) { 

     thread = emails[n].getMessages()[0]; 

     subject = thread.getSubject(); 
     body  = processHTML(thread.getBody(), 250); 
     link  = thread.getId(); 
     from  = thread.getFrom(); 
     date  = Utilities.formatDate(thread.getDate(), 
     Session.getTimeZone(), "MMM dd, yyyy"); 
     event  = 'Follow up with' + from + 'on'+ subject + ', Next Friday 
     at 1PM'; 

    CalendarApp.getDefaultCalendar().createEventFromDescription(event); 
    Logger.log('Event ID: ' + event.getId()); 

    } 
    } 



} 

function getIndex(count, min, max) { 
    var results = [], index; 
    while (count > 0) { 
     randNumber = Math.round(min + Math.random() * (max - min)); 
     if (results.indexOf(randNumber) == -1) { 
      results.push(randNumber); 
      count--; 
     } 
    } 
    return results; 
+3

これは、 'index'が未定義であることを意味します。 'index'を初期化せずに' index.push() 'を呼び出します。 – Pointy

答えて

0

注意点として、indexの値は未定義です。実際には、すべての変数thread, subject, body, from, date, emails, index, eventは、最初は定義されていません。なぜなら、2つの値を割り当てているからです。
その後、index以外のすべてを再割り当てしますが、最初の割り当て[], iは構文的に間違っています。したがって、undefinedです。

indexを宣言して初期化すると、var index = [];のようになります。 nullに初期化して、後でいくつかの適切な値を割り当てることを明確にするための他の変数です。

関連する問題