replace() method of form submitted data returns "TypeError: Cannot call method 'replace' of undefined"

replace() method of form submitted data returns "TypeError: Cannot call method 'replace' of undefined"

所以我试图用“-”替换从我的 Google 表单提交的任何“-”,以便能够对其进行数学处理(我在排除的代码中进一步执行 parseInt())我的电子表格。我在这里尝试这样做的方式可能很笨拙,但我有点希望它能工作,但我不明白为什么它不会。

function myNotification(e) {

  var i;
  var temp = [];
  var ent = [];
  var eventInput = e;
  var vArray = e.values; // just for the sake of it

  for(i = 0; i < 150; i++){

     ent[i] = e.values[i]

    temp[i] = ent[i].replace("−","-"); //TypeError




  }

我真的很感激我能得到的任何可能的帮助,因为我已经尝试解决这个问题一段时间了,但我对 js(或一般编码)的有限理解真的很难。

编辑:我通常不在代码中包含 .toString() ,但这也给了我与 replace()

相同的 TypeError

EDIT2:var ja = e.values[2].replace("−","-"); 给了我“-1”而不是正常的“−1”,这正是我想要的,但我不想写下所有 150 个潜在的转换

EDIT3(5):这:Google Script not properly accepting event input 似乎非常相关,但我尝试添加他最终做出的声明来解决问题,但它似乎没有做任何事情为了我。代码已更新。 只要我制作了两个变量,这就有效:

var vArray = e.values;
  var arrayLength = e.values.length;

EDIT4:按照 for 循环中 e.values.length 的建议修复了该问题。 更新代码:

  var i;
  var temp = [];
  var ent = [];
  var eventInput = e;
  var vArray = e.values;




  for(i = 0; i < e.values.length; i++){

     ent[i] = e.values[i];


    temp[i] = ent[i].replace("−","-");




  }

限制你的for循环直到数组的长度。

function myNotification(e) {
   for(i = 0; i < e.values.length; i++){
   ent[i] = e.values[i].toString();
   temp[i] = ent[i].replace("−","-"); 
   }
}