2017-04-05 74 views
4

我正在爲我們正在進行的一些選舉開發數據轉換腳本。第一部分將所有名稱都改爲大寫,這部分腳本工作正常。但是,我對腳本的第二部分有問題。一些ID將有一個S,S123456,有些不會有S,123456。爲了我的目的,我需要所有ID在開頭沒有s。當我在Google中運行此腳本時,它返回「TypeError:在對象S123456中找不到函數startsWith」。有任何想法嗎?謝謝!!字符串以Google腳本開頭

function convertResponseData(){ 
 
    var resultsInformation = SpreadsheetApp.openById('MySheetID').getSheetByName('Election Responses'); 
 
    var resultsDataRange = resultsInformation.getRange(1, 1, 2500, 6); 
 
    var resultsData = resultsDataRange.getValues(); 
 
    for (var i = 0; i < resultsData.length; i++) { 
 
    var row = resultsData[i]; 
 
    var resultsStudentNameLower = row[1]; 
 
    var resultsStudentID = row[2] 
 
    var studentNameUpper = resultsStudentNameLower.toUpperCase() 
 
    resultsInformation.getRange(i+1, 2).setValue(studentNameUpper) 
 
    if (var n = resultsStudentID.startsWith("S")){ 
 
     var resultsStudentIDNoS = resultsStudentID.substring(1,20); 
 
     resultsInformation.getRange(i+1, 3).setValue(resultsStudentIDNoS) 
 
    } 
 
    } 
 
}

+0

'找不到功能startsWith'開始 - 您使用哪種瀏覽器?而且,'resultsStudentID'總是一個字符串?也許你需要像這樣檢查if(resultsStudentID.startsWith && resultsStudentID.startsWith(「S」)){' - 你也可以刪除'var n =',因爲你從不使用該值 –

+0

或者if(resultsStudentID .toString()。startsWith(「S」)){' - 只要你的瀏覽器不是Internet Exploder –

+0

我正在使用谷歌瀏覽器,我試過'if(resultsStudentID.toString()。startsWith(「S」)) {'這給了我同樣的錯誤。 @JaromandaX –

回答

7

startsWith()在谷歌的腳本不支持。相反,你可以使用

resultsStudentID.indexOf("S") == 0 

要檢查字符串開始以「S」

function convertResponseData(){ 
    var resultsInformation = SpreadsheetApp.openById('MySheetID').getSheetByName('Election Responses'); 
    var resultsDataRange = resultsInformation.getRange(1, 1, 2500, 6); 
    var resultsData = resultsDataRange.getValues(); 
    for (var i = 0; i < resultsData.length; i++) { 
    var row = resultsData[i]; 
    var resultsStudentNameLower = row[1]; 
    var resultsStudentID = row[2] 
    var studentNameUpper = resultsStudentNameLower.toUpperCase() 
    resultsInformation.getRange(i+1, 2).setValue(studentNameUpper) 
    if (resultsStudentID.indexOf("S") == 0){ 
     var resultsStudentIDNoS = resultsStudentID.substring(1,20); //You also do this resultsStudentID.substring(1) to get a substring from index 1 to end. 
     resultsInformation.getRange(i+1, 3).setValue(resultsStudentIDNoS) 
    } 
    } 
} 

希望幫助

+1

這是正確的答案。似乎這個問題的作者忘記了這個主題,但是這個問題應該被標記爲這個問題的有效解決方案 –

相關問題