我正在做以下事情:
var var1 = 58;
for(var i=0;i<10;i++){
if(("var"+i) == 58) {
console.log("they are equal");
}
}
有人可以解释一下为什么(“var”+ i)没有得到值58吗?
我知道第一个是变量,也许第二个只是一个字符串,是吗?有没有办法使这项工作?
我知道我可能会问许多很明显的事情,但我刚开始。任何帮助赞赏! :)
答案 0 :(得分:2)
您应该使用对象:
var data = {
var1: 58
};
for(var i = 0; i < 10; i++){
if(data["var" + i] == 58) {
console.log("they are equal");
}
}
UPD:@Alex suggested变种window
而不是data
,可以视为全局对象。它适用于浏览器,但您应该知道“没有适用于窗口对象的公共标准”(MDN)。
答案 1 :(得分:1)
var var1 = 58;
for(var i=0 ;i<10;i++){
if(window["var"+i] === 58) {
console.log("they are equal");
}
}
答案 2 :(得分:0)
dhilt的答案可能更好,但也许你没有能力改变另一个变量。
var var1 = 58;
for (var i = 0; i < 10; i++) {
var cur;
try {
cur = eval('var' + i);
} catch (error) {
cur = null;
}
if (cur === 58) {
console.log("they are equal");
}
}
&#13;