动态Javascript变量名

动态Javascript变量名,javascript,Javascript,可能重复: 我可以要一个类似于Jquery的东西吗 for(var i=0;i<10;i++) { var (eval(i+17)) = y; y++; } for(var i=0;i这里的正确答案是使用数组: var arr = []; for (var i = 0; i < 10; i++) { arr[i + 17] = y; y++; } 但这意味着您正在使用随机变量名在整个范围内跺脚。请将它们放在一个数组中。这里的正确答案是使用数组: va

可能重复:

我可以要一个类似于Jquery的东西吗

for(var i=0;i<10;i++)
{
   var (eval(i+17)) = y;
   y++;
}

for(var i=0;i这里的正确答案是使用数组:

var arr = [];
for (var i = 0; i < 10; i++) {
    arr[i + 17] = y;
    y++;
}

但这意味着您正在使用随机变量名在整个范围内跺脚。请将它们放在一个数组中。

这里的正确答案是使用数组:

var arr = [];
for (var i = 0; i < 10; i++) {
    arr[i + 17] = y;
    y++;
}

但这意味着你用随机变量名在你的作用域上到处跺脚。把它们放在一个数组中。实际上,你不必使用数组。你也可以使用对象

var y = 0;
var obj = {};
var arr = [];
for (var i = 0; i < 10; i++) {
    obj[i + 17] = y
    arr[i + 17] = y;
    y++;
}

console.log(obj);
console.log(arr);
要使用的JSFiddle是

使用对象的附加好处包括:

  • 您的
    obj
    var的大小应该小于
    arr
    变量,因为它没有“未使用的索引”
  • 您可以随意命名动态变量,而不是数组,数组必须是整数
以下操作适用于对象,但无法向数组中添加任何变量:

var y = 0;
var obj = {};
var arr = [];
for (var i = 0; i < 10; i++) {
    obj['my variable' + (i + 17)] = y
    arr['my variable' + (i + 17)] = y;
    y++;
}

而且
arr
将为空:
[]

实际上,您不必使用数组。您也可以使用对象

var y = 0;
var obj = {};
var arr = [];
for (var i = 0; i < 10; i++) {
    obj[i + 17] = y
    arr[i + 17] = y;
    y++;
}

console.log(obj);
console.log(arr);
要使用的JSFiddle是

使用对象的附加好处包括:

  • 您的
    obj
    var的大小应该小于
    arr
    变量,因为它没有“未使用的索引”
  • 您可以随意命名动态变量,而不是数组,数组必须是整数
以下操作适用于对象,但无法向数组中添加任何变量:

var y = 0;
var obj = {};
var arr = [];
for (var i = 0; i < 10; i++) {
    obj['my variable' + (i + 17)] = y
    arr['my variable' + (i + 17)] = y;
    y++;
}

arr
将是空的:
[]

…嗯?这个问题毫无意义。您的代码对我们来说毫无意义。您正在尝试执行
var eval(17)=y;
这会变成
var 17=y;
。这没有意义,也不是合法的javascript。请澄清您真正想做什么……嗯?这个问题没有意义。您的代码对我们没有意义。您正在尝试做
var eval(17)=y;
将变成
var 17=y;
。这没有意义,也不是合法的javascript。请澄清您真正想做的事情。+1对于对象,它们确实更适合用于非顺序键或非数字键。+1对于对象,它们确实更适合用于非顺序键或非数字键是的。