web-dev-qa-db-ja.com

文字列はGoogle Scriptで始まります

現在行っている選挙のデータ変換スクリプトに取り組んでいます。最初の部分はすべての名前を大文字に変更し、スクリプトのこの部分は正常に機能します。ただし、スクリプトの2番目の部分に問題があります。一部のIDにはS、S123456があり、一部にはS、123456がありません。私の目的のために、最初にすべてのIDにsがないことを必要としています。このスクリプトをGoogleで実行すると、「TypeError:オブジェクトS123456で関数startsWithが見つかりません」が返されます。何か案は?ありがとう!!

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)
    }
  }
}
12
Austin Hoag

startsWith()は、Googleスクリプトではサポートされていません。代わりに、あなたは使うことができます

resultsStudentID.indexOf("S") == 0 

文字列startが「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)
    }
  }
}

それが役に立てば幸い

24
Jack Brown