Javascript/HTML,是否可以从循环创建变量名称

Joh*_*ohn 10 javascript

想象一下,我有: <div id names>142,140,150</names>

我可以(在Javascript中)编写一个声明变量名称的forloop,并附加这些值

var list = document.getElementById('names').innerHTML.Split(',');

for(i=0; i<list.Length; i++){
    var 'beginning' + list[i];
}
Run Code Online (Sandbox Code Playgroud)

所以我基本上想要创建:

var beginning142
var beginning140
var beginning150

Dav*_*und 7

你确实可以:

window['beginning' + list[i]] = 'value';
Run Code Online (Sandbox Code Playgroud)

有趣的巧合,我在这之前10秒回答了一个非常密切相关的问题,然后我用这个作为例子.因此,可以在此处获得有关其工作原理的更详细说明.


Amr*_*rhy 5

你可以这样做:

for(var i = 0; i<100; i++)
{
   eval("var beginning"+i);
}
Run Code Online (Sandbox Code Playgroud)

对于害怕来自eval的开发人员这是一篇关于eval以及它如何不是邪恶的好文章:http://www.nczonline.net/blog/2013/06/25/eval-isnt-evil-just-misunderstood/

我不是说你应该跑出去并开始在各地使用eval().事实上,运行eval()的好用例很少.代码清晰度,可调试性以及当然不应忽视的性能肯定存在问题.但是当你遇到eval()有意义的情况时,你不应该害怕使用它.尽量不要先使用它,但是当适当使用eval()时,不要让任何人吓唬你认为你的代码更脆弱或更不安全.

  • 有用!在我看来,这个解决方案应该得到一个很好的分数,非常干净和精确+1 (2认同)