evalにはeval() - JavaScript | MDNにも書かれているように意図しないコードが実行されるリスクがあるため別の方法で実現するのが良さそうです
ここではどんなことができるのか試したコードを備忘録として書いておきます
コード.gs
function create_vars(){
var words = ["abc", "ABC"];
for (var i = 0; i < words.length; i++) {
var str = "var word" + i + "=" + '"' + words[i] + '"';
eval(str);
}
var result = [];
for (var i = 0; i < words.length; i++) {
result.push(eval("word" + i));
}
Logger.log(result)
}
|
意訳この機能がやること 単語を入れた配列を用意して 単語の数だけ以下を繰り返す var word0 = words[0];とvar word1 = words[1];を文字列で作って それらをjavascriptのコードとして扱えるようにする 変数の値を入れる入れ物を用意して 単語の数だけ以下を繰り返す resultにword0の値を追加して、 word1の値も追加して ログに出す |
参考
eval() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval
