var b = '1';
如何使用变量b的内容创建变量名?我在每个循环中都这样做,所以b会改变。
我希望最终产品能够像:
var trip1 = '';
我将如何完成类似的事情?
var trip + b = '';
var trip.b = '';
答案 0 :(得分:3)
不,但您可以使用对象的属性来执行此操作:
var obj = {};
obj.b = '1'
obj['trip' + obj.b] = '';
// or
var obj = {};
var b = '1'
obj['trip' + b] = '';
在JavaScript中,您可以通过两种方式访问属性:
使用点和文字属性名称,例如obj.trip1
。
使用括号和字符串属性名称,例如obj['trip1']
。
在后一种情况下,字符串不必是字符串文字,它可以是任何表达式的结果,因此上面的示例。
答案 1 :(得分:1)
我在每个循环中执行此操作
由于您正在迭代它们,最好的方法是使用数组。
var trip = [1,2,3,4,5];
for (var i = 0; i < trip.length; i++){
alert(trip[i]);
}
要解决您的问题,您可以将值存储为对象的属性:
var obj = {};
var b = '1';
obj['trip' + b] = "";
如果您在全局范围内执行此操作,还可以将该变量添加为全局对象的属性:
var b = '1';
window['trip' + b] = "";
trip1; // == ""
答案 2 :(得分:0)
您可以通过窗口对象访问全局变量,使用如下动态键:
var b = '1';
trip1 = 'hello';
console.log(window['trip'+b]);
答案 3 :(得分:0)
听起来你正在寻找eval()方法。
var b = '1';
(eval('var trip'+b+' = 3')); // Is the same as writing var trip1 = 3;
console.log(trip1);
//Output of variable trip1 is 3
虽然,快速谷歌搜索为什么eval();在你采用这种技术之前是不好的。