这可能是初学者的问题,但是我似乎找不到答案。
它获取的数据是JSon文件中的数据。我希望它遍历它所看到的所有行。该循环以下面的方式工作,并向我返回其余代码所需的信息。我正在尝试创建多个变量,如testVar1,testVar2,testVar3等。...我不知道是否可以通过这种方式进行操作,或者是否需要找到其他解决方案。
var i = 0;
for (var x in data) {
var testVar1 = data[0][1]; // works
var testVar[i] = data[0][1]; // doesn't
i += 1;
}
如何使testVar [i]工作?
正确的语法是什么?
答案 0 :(得分:1)
您的代码缺少数组变量var testVar = [];
的初始化。
⋅
⋅
⋅
无论如何,您可能想在window
对象中创建这些变量:
for (var i = 0; i <= 2; i++) {
name = 'var' + i;
window[name] = "value: " + i;
}
console.log(var0);
console.log(var1);
console.log(var2);
这样,您就可以继续使用“短”变量名。
答案 1 :(得分:0)
您可以将所有这些变量包装在一个对象中。
代替:
var testVar1 = data[0][1];
尝试:
var Wrapper = {};
//inside the for loop:
Wrapper["testVar" + i] = data[0][i];
...and so on.
您将以Wrapper.testVar1
或Wrapper["testVar" + 1]
的身份访问它们。
答案 2 :(得分:0)
您遇到的问题非常简单。您尝试将变量声明为数组,并在同一条语句中尝试为特定索引分配赋值。之所以不起作用,是因为array首先需要明确定义。
var testVar[i] = data[0][1];
应替换为:
var testVar = []; // outside the loop
testVar[i] = data[0][1]; // inside the loop
结果:
var i = 0,
testVar = [],
data = [
['foo', 'bar', 'baz'],
['kaas', 'is', 'baas']
];
for (var x in data) {
var testVar1 = data[0][1];
testVar[i] = data[0][1];
i += 1;
}
console.log('testVar1', testVar1);
console.log('testVar', testVar);
console.log('testVar[0]', testVar[0]);
console.log('testVar[1]', testVar[1]);
如果i
不是整数,则应改用object。这可以在the answer of Tilepaper中看到,尽管我建议不要使用以大写字母开头的使用变量,因为它们建议使用常量或类。