JS变量名称循环定义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS变量名称循环定义相关的知识,希望对你有一定的参考价值。

var marker1 = new BMap.Marker(new BMap.Point(111.1175,26.748500));
map.addOverlay(marker1);

var marker2 = new BMap.Marker(new BMap.Point(111.1175,26.748500));
map.addOverlay(marker2);

var marker3 = new BMap.Marker(new BMap.Point(111.1175,26.748500));
map.addOverlay(marker3);

用for循环定义怎么写

参考技术A for(var i=1;i<len;i++)
    var temp = "marker";
    var exp = "new BMap.Marker(new BMap.Point(111.1175,26.748500))";
    eval(temp+i+"="+exp);

利用eval函数将字符串转化成js代码强制执行

参考技术B

可以用eval

<script>
var Thread_num=5;
for(var i=1;i<=Thread_num;i++)
eval("var set_" + i + "=" + i);

alert(set_5);
</script>

看你这是做百度地图的,不一定要这么写的,也可以换种思路,把添加地图标记的写成一个函数,然后通过外部循环把地图标记上去。

可以参考一下

<!-- http://www.poscom.cn/map/ -->
<script src="https://www.poscom.cn/map/script/function.js"></script>

参考技术C for(var i=0;i<3;++i) 
    map.addOverlay(new BMap.Marker(new BMap.Point(111.1175,26.748500)));

参考技术D for(var i=1;i<=90;i++)
window["xf"+i]=0;

alert(xf20);

第5个回答  2017-08-02 循环定义变量名的方法可以使用for循环

使用构造变量名称循环遍历表单上的单选按钮

【中文标题】使用构造变量名称循环遍历表单上的单选按钮【英文标题】:Loop through radio buttons on a form using a construted variable name 【发布时间】:2012-05-14 02:58:39 【问题描述】:

我在一个表单上有几个单选按钮,它们都分组为 3,当它们被点击时,我需要在它们上运行一个 JS 函数。在这个函数中,我循环遍历被按下按钮组中的单选按钮(即,如果该组被称为“abc_name”,则使用for (var i = 0; i &lt; form.abc_name.length; i++) )。

我想知道是否有一种方法可以使用构造的组名以相同的方式操作一组单选按钮?例如,如果我将“xyz”传递给函数,我需要代码为for (var i = 0; i &lt; form.xyz_name.length; i++) 。谢谢。

【问题讨论】:

【参考方案1】:

使用square bracket notation。

function loopDeLoop (xyz) 
    var elems = form.elements[xyz + "_name"],
        len = elems.length,
        i;
    for (i=0;i<len;i++)
        console.log(elems[i];
    

【讨论】:

谢谢,这正是我所需要的。【参考方案2】:

你应该真的在这两种情况下都使用getElementsByName()

for (var els = document.getElementsByName(xyz + '_name'), i=0; i<els.length;i++) 
    // something on els[i]

虽然您所拥有的直接等价物是:

for (var els = form.elements[xyz + "_name"];, i=0; i<els.length;i++) 
    // something on els[i]

【讨论】:

谢谢,马上就有戏了。但是,该建议背后的原因是什么?我认为它更快?【参考方案3】:

使用[]属性语法:

function loop(s) 
   s += '_name';
   var inputs = form[s];

   for (var i = 0; i < inputs.length; ++i) 
       ...
   

当属性键是变量时,这是必需的 - a.b 语法仅在 b 是“文字”时才有效。

【讨论】:

以上是关于JS变量名称循环定义的主要内容,如果未能解决你的问题,请参考以下文章

JS基础语法(变量表达式语句分支循环)

JS对象中的变量名称有问题吗?

js中定义用字符串拼接起来的变量名的变量

js命名规则

js冲突怎么解决

js怎么循环出变量,然后一个个储存到数组中?