调整JS代码到Google Apps脚本在谷歌片

问题描述 投票:0回答:1

我有一个JS代码的工作为我的Web应用程序,它与模式NSAA生成自定义格式的报告ID号 - #### - #### - YYYY,其中AA - 任何字母,####任意数量, YYYY当前年份。在JS这个功能是下面引用。

有人问我尝试相同的功能转移到谷歌片,作为一个“自定义函数”。

虽然大部分的代码工作得很好,我得到的问题与GAS indexOf方法和总体我不知道如果我做正确的。想知道关于这个快速提示。

这是我想在Google Apps脚本复制JS代码:

let d = new Date();
const randomString = (length, chars) => {
  let mask = '';

  if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  if (chars.indexOf('#') > -1) mask += '0123456789';
  let result = '';
  for (let i = length; i > 0; --i) result += mask[Math.round(Math.random() * (mask.length - 1))];
  return result;
}

// Inserting report ID into appropriate fields
const reportNS = () => {
  let reportIDNS = document.getElementById("reportIDNS");
  reportIDNS.value = 'NS' + randomString(2, 'A') + '-' + randomString(4, '#') + '-' + randomString(4, '#') + '-' +
    d.getFullYear();
}

我的第一个想法是把它放在这样的事情:

/**
 */

var d = new Date();
function randomString (length, chars) {
  var mask = '';

  if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  if (chars.indexOf('#') > -1) mask += '0123456789';
  var result = '';

  for (var i = length; i > 0; --i)
    result += mask[Math.round(Math.random() * (mask.length - 1))];
  return result = 'NS' + randomString(2, 'A') + '-' + randomString(4, '#') + '-' + randomString(4, '#') + '-' + d.getFullYear();
}

但是,我得到的错误

类型错误:无法调用的未定义“的indexOf”。

想知道关于这个问题的提示!

javascript random google-apps-script google-sheets
1个回答
0
投票

得到它 - 在这里是如何工作的。当然 - 需要使用第二个函数调用randomString:

// Funciton to create ReportID (or caseID) as the customer wants
function CaseID () {
  var d = new Date();
  var caseID = 'ID' + randomString(2, 'A') + '-' + randomString(4, '#') + '-' + randomString(4, '#') + '-' + d.getFullYear();
  return caseID;
} 

// Function that generates randomString - no surprises here
function randomString (length, chars) {
  var mask = '';

     if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
     if (chars.indexOf('#') > -1) mask += '0123456789';
      var result = '';

  for (var i = length; i > 0; --i) {
    result += mask[Math.round(Math.random() * (mask.length - 1))]
  };
      return result;
 }
© www.soinside.com 2019 - 2024. All rights reserved.