Javascript-eval函数字符串中的加号

Javascript-eval函数字符串中的加号,javascript,eval,Javascript,Eval,请看以下代码: for(var j = 0; j <= 12; j++) { deck[j] = eval("card_S" + j + "+1"); } for(var j=0;j你是说这个吗 for(var j = 0; j <= 12; j++) deck[j] = eval("card_S" + (j + 1)); for(var j=0;j你是说这个吗 for(var j = 0; j <= 12; j++) deck[j] = eval("c

请看以下代码:

for(var j = 0; j <= 12; j++)
{
  deck[j] = eval("card_S" + j + "+1");
}
for(var j=0;j你是说这个吗

for(var j = 0; j <= 12; j++)
    deck[j] = eval("card_S" + (j + 1));
for(var j=0;j你是说这个吗

for(var j = 0; j <= 12; j++)
    deck[j] = eval("card_S" + (j + 1));
for(var j=0;j

deck[j]=eval("card_S"+ (j+1));
那么:

deck[j]=eval("card_S"+ (j+1));

你根本不需要使用eval

for(var j = 0; j <= 12; j++)
{
    deck[j] = window["card_S" + (j + 1)];
}

for(var j=0;j您根本不需要使用eval

for(var j = 0; j <= 12; j++)
{
    deck[j] = window["card_S" + (j + 1)];
}

for(var j=0;j不要使用
eval

假设变量
card#
S在全局范围内,您可以将代码更改为:

for(var j = 0; j <= 12; j++)
    deck[j] = window["card_S" + (j + 1)];

for(var j=0;j不要使用
eval

假设变量
card#
S在全局范围内,您可以将代码更改为:

for(var j = 0; j <= 12; j++)
    deck[j] = window["card_S" + (j + 1)];

for(var j=0;j为什么需要使用
eval()
?这通常是坏代码的迹象。您的预期输出是什么?为什么需要使用
eval()
?这通常是错误代码的标志。您预期的输出是什么?它将
字符串
分配到数组中,但看起来OP想要该变量名引用的实际值;请参阅我的答案。谢谢。我不理解这个问题。已编辑。就在我编辑之前,答案已被接受。@user979830您能解释一下您的想法吗你想要的是什么?我想要的是variable@user979830在这种情况下,使用window[]是正确的方法。不要使用eval。这会将
字符串
分配到数组中,但看起来OP想要该变量名引用的实际值;请参阅我的答案。谢谢。我不理解这个问题。已编辑。就在我编辑之前,答案已被接受。@user979830您能解释一下您到底想要什么吗?我想要ac所引用的实际值variable@user979830在这种情况下,使用window[]是正确的方法。不要使用eval。@user979830:更具体地说,卡片应该是数组而不是一堆变量。@user979830:更具体地说,卡片应该是数组而不是一堆变量。