Javascript 有没有一种方法可以根据另一个变量的值生成动态变量名?
有没有办法使一个变量的值成为另一个变量的名称?例如,我希望变量名(value\u of_I)是迭代过程中的任何数字“I”。下面的while循环不是我使用它的目的,它只是为了解释我的要求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."; 对。使用(这里是一个)
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.fwiwvar 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.