2017-04-05 75 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

这是正确的答案。似乎这个问题的作者忘记了这个主题,但是这个问题应该被标记为这个问题的有效解决方案 –

相关问题