繁体   English   中英

在 Google Apps Script 中动态定义变量名称和赋值

[英]Dynamically define variable name and assigning value in Google Apps Script

我正在编写一个脚本来在 Google Apps 脚本中生成一个表单。

这个想法是,用户应该从下拉列表中选择他/她的名字,然后被转移到他/她的问题块。

虽然题目是一样的,但有些题目的下拉选项略有变化。

我有一个包含用户姓名的数组,并且我已经为每个用户定义了问题。 这不太理想,好像问题有什么变化我要一个一个地重写每一块。

我想使用一个循环,通过使用用户名数组创建变量名称来生成问题块。

我尝试了以下(这不是实际代码,但会引发相同的错误)

for (a=0; a < 10; a++)
{
 eval('var beginning'+a);
}

for (b=0;b<10; b++)
{
 eval('beginning' + b) = 1;
}    

第一个for循环运行良好,但是当我尝试分配任何值时,它会引发错误。 (我在这里使用两个for循环仅用于调试。)例如:

 eval('beginning' + b) = 1;  //Throws: We're sorry, a server error occurred. Please wait a bit and try again.
 eval('beginning' + b + '= 1;');  //Throws: We're sorry, a server error occurred. Please wait a bit and try again.
 eval('beginning' + b = 1);  //Throws: Invalid assignment left hand side. (line 1, file "Code")

像这样使用eval也很好: choices = eval('lCountries' + Names[i]).getChoices(); .

如何在for循环中为这些变量赋值?

非常感谢您提前。

就我目前所读到的而言, eval() 几乎总是一个糟糕的选择,应该谨慎处理,并且大多从未使用过。 以这种方式使用动态变量也是一种糟糕的编程逻辑。 我从未见过必须这样做的情况,而您的情况显然不是。 您可以使用对象轻松绕过它,只需定义一个通用对象var myVariables = {} ,然后开始为您的变量动态分配其属性。

var myVariables = {};
myVariables[ "beginning" ] = 1;

for( i = 0; i < 10; i++){
  myVariables[ ("beginning" + i) ] = i;
}


Logger.log( myVariable[ "beginning5" ] ); //Loggs 5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM