Javascript 有没有一种方法可以根据另一个变量的值生成动态变量名?

Javascript 有没有一种方法可以根据另一个变量的值生成动态变量名?,javascript,Javascript,有没有办法使一个变量的值成为另一个变量的名称?例如,我希望变量名(value\u of_I)是迭代过程中的任何数字“I”。下面的while循环不是我使用它的目的,它只是为了解释我的要求 var i = 1; while(i<10) { var value_of_i = "This loop has ran " + i + "times."; i++; } 第二个互动: var 2 = "This loop has ran " + i + "times."; 对。使用(这里是一个)

有没有办法使一个变量的值成为另一个变量的名称?例如,我希望变量名(value\u of_I)是迭代过程中的任何数字“I”。下面的while循环不是我使用它的目的,它只是为了解释我的要求

var i = 1;
while(i<10)
{

var value_of_i = "This loop has ran " + i + "times.";

i++;
}
第二个互动:

var 2 = "This loop has ran " + i + "times.";
对。使用(这里是一个)

执行类似于
containingObject[stringVariable]
的操作时,您正在访问
containingObject
中的属性,该属性的name是存储在
stringVariable
中的值

// this assumes browser JavaScript where window is the global namespace
// in node.js this would be a little different
var i=0;
while(i<10){ 
   window["counters"+i] = "This is loop has ran " + i + "times.";
   i++;
}
console.log(counters3);
还可以使用存储在变量中的字符串值访问属性:

var propertyName = "make";
myCar[propertyName] = "Ford";

propertyName = "model";
myCar[propertyName] = "Mustang";

不能将变量名设为数字,它不是有效名称。因此
var 1=”“
无效

但要动态设置值,您可以执行以下操作

var x = "variablenamehere";

window[x] = "variablevaluehere";
这和

变量变量


除了它将被定义为一个全局变量,并且可以在任何地方访问,而不是局限于当前的函数范围。

为什么不将您的
字符串存储在
数组中,该数组由
i
索引

这样你以后就可以方便有效地引用它们

var loopI = new Array();

for(var i = 0; i < 10; ++i) {
    loopI[i] = "This loop has ran " + i + "times.";
}
var loopI=new Array();
对于(变量i=0;i<10;++i){
loopI[i]=“此循环已运行”+i+“次。”;
}
这项工作:

var o = {};
var d = "dog";
for (var k = 0; k < 5; k += 1) {
    o[d+k] = k*100;
}
console.log(o.dog3);  // 300
var o={};
var d=“狗”;
对于(变量k=0;k<5;k+=1){
o[d+k]=k*100;
}
console.log(o.dog3);//300
这更接近于做你想做的事情:

var N = {};
var M = {};
var i = 1;
while(i<10)
{
    N[i] = "This loop ran " + i + " times.";
    // Or, so you can use dot notation later:
    M['OO'+i] = "This loop ran " + i + " times.";
    // Those are capital O's, not zeros. Numbers won't work.
    i++;
}
console.log(N[3]); // This loop ran 3 times.
console.log(M.OO7); // This loop ran 7 times.
var N={};
var M={};
var i=1;

while(请参阅本文:将所有数据放在json对象中并访问myVar['wantedIndex']如何?此外,您还可以尝试window['yourVariableName']global array.fwiw
var 1=“…”
无效。数字不能是javascript中的变量名。@YounElan我想你指的是javascript对象。JSON指的是数据格式,不是官方javascript规范的一部分。请参见此处:和的可能重复。
var o = {};
var d = "dog";
for (var k = 0; k < 5; k += 1) {
    o[d+k] = k*100;
}
console.log(o.dog3);  // 300
var N = {};
var M = {};
var i = 1;
while(i<10)
{
    N[i] = "This loop ran " + i + " times.";
    // Or, so you can use dot notation later:
    M['OO'+i] = "This loop ran " + i + " times.";
    // Those are capital O's, not zeros. Numbers won't work.
    i++;
}
console.log(N[3]); // This loop ran 3 times.
console.log(M.OO7); // This loop ran 7 times.