Javascript 验证值是否在Google工作表中

Javascript 验证值是否在Google工作表中,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我试图生成一个随机代码,但是在将其附加到Google工作表之前,它需要检查代码是否已经在工作表中,如果已经存在,那么它需要再次随机,直到没有匹配为止。如何循环它直到在谷歌表单中没有匹配项?您的答复将不胜感激 这是我的.gs代码: function processForm2() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var ws = ss.getSheetByName("Sheet1"); var da

我试图生成一个随机代码,但是在将其附加到Google工作表之前,它需要检查代码是否已经在工作表中,如果已经存在,那么它需要再次随机,直到没有匹配为止。如何循环它直到在谷歌表单中没有匹配项?您的答复将不胜感激

这是我的.gs代码:

function processForm2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ws = ss.getSheetByName("Sheet1");

  var data = ws.getRange(5, 1, ws.getLastRow()-1, 1).getValues();
  var code = Math.random().toString(36).substring(7);
  var codeList = data.map(function(r){return r[0].toString(); });
  var position = codeList.indexOf(code);
  
  if(position < -1){
    ws.appendRow([code]);
  }else{
    var code = Math.random().toString(36).substring(7);
    ws.appendRow([code]);      
  }
}
函数processForm2(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var ws=ss.getSheetByName(“Sheet1”);
var data=ws.getRange(5,1,ws.getLastRow()-1,1.getValues();
var code=Math.random().toString(36).子字符串(7);
var codeList=data.map(函数(r){返回r[0].toString();});
var position=codeList.indexOf(代码);
如果(位置<-1){
ws.appendRow([code]);
}否则{
var code=Math.random().toString(36).子字符串(7);
ws.appendRow([code]);
}
}

在您的情况下,当
位置
不是
-1
时循环如何?当您的脚本被修改时,它将变成如下所示

发件人: 参考:
var code = Math.random().toString(36).substring(7);
var codeList = data.map(function(r){return r[0].toString(); });
var position = codeList.indexOf(code);

if(position < -1){
  ws.appendRow([code]);
}else{
  var code = Math.random().toString(36).substring(7);
  ws.appendRow([code]);      
}
var codeList = data.map(function(r){return r[0].toString(); });
var code;
do {
  code = Math.random().toString(36).substring(7);
  var position = codeList.indexOf(code);
} while (position > -1);
ws.appendRow([code]);