Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环中的动态变量名_Javascript - Fatal编程技术网

Javascript 循环中的动态变量名

Javascript 循环中的动态变量名,javascript,Javascript,我需要在js中为循环内部创建动态变量名 var counter = 0; for(i=0; i<location.length; i++) { ... var "marker_" + counter = new google.maps.Marker({ 使用数组: var marker = []; for (i=0; i < location.length; i++) { marker[counter] = new google.maps.Marker({ v

我需要在js中为循环内部创建动态变量名

var counter = 0;
for(i=0; i<location.length; i++) {
   ...
   var "marker_" + counter = new google.maps.Marker({
使用数组:

var marker = [];

for (i=0; i < location.length; i++) {
   marker[counter] = new google.maps.Marker({
var标记=[];
对于(i=0;i
在这里,“使用数组”无疑是正确的答案,但是如果你真的想要动态变量,你需要决定它们的范围-默认值是
窗口
,然后你可以这样做:

var counter = 0;
for(i=0; i<location.length; i++) {
   ...
   window["marker_" + counter] = new google.maps.Marker({
还是点符号

window["marker_0"]...
window.marker_0

由于此问题被用作重复目标:

如果要访问的信息是数字键控的,这是一个很好的建议。如果不是,则有两个选项:

  • 使用对象和动态属性访问

  • 使用
    地图
    (ES2015+)

  • 使用对象 您可以通过括号表示法使用字符串(或在ES2015+中使用符号)访问对象属性,因此您可以在对象中存储信息,以便以后使用字符串/符号进行访问:

    var theData=Object.assign(Object.create(null)){
    x:“ecks”,
    y:“为什么?”
    });
    var key=Math.random()<0.5?“x”:“y”;
    
    log(“key=“+key+”,the data[key]=“+the data[key]);
    您需要使用eval()但是,按照数组解决方案,IMO。我不认为在这样的循环中创建动态变量有什么意义,因为上下文只在当前迭代的范围内。如果您希望在循环外重用,则需要使用数组。这与PHP无关。我甚至不知道如何使用数组is必须处理jQuery,但我会让JS专业人员来处理。我删除了[jQuery]标记-这与jQuery无关。
    window.marker_0