2
var b = '1';

如何使用变量 b 的内容创建变量名?我在每个循环中都这样做,所以 b 会改变。

我希望最终产品是这样的:

var trip1 = '';

我将如何完成这样的事情?

var trip + b = '';
var trip.b = '';
4

4 回答 4

3

不,但是您可以使用对象的属性来做到这一点:

var obj = {};
obj.b = '1'
obj['trip' + obj.b] = '';

// or

var obj = {};
var b = '1'
obj['trip' + b] = '';

在 JavaScript 中,您可以通过两种方式访问​​属性:

  1. 使用点和文字属性名称,例如obj.trip1.

  2. 使用方括号和字符串属性名称,例如obj['trip1'].

在后一种情况下,字符串不必是字符串文字,它可以是任何表达式的结果,因此是上面的示例。

于 2012-12-08T14:36:10.060 回答
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; // == ""
于 2012-12-08T14:36:28.543 回答
0

您可以使用如下动态键通过窗口对象访问全局变量:

var b = '1';

trip1 = 'hello';

console.log(window['trip'+b]);
于 2012-12-08T14:36:41.490 回答
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(); 在你使用这种技术之前是不好的。

于 2012-12-08T14:54:58.363 回答