Javascript - знак плюс внутри строки функции eval - PullRequest
0 голосов
/ 13 ноября 2011

Посмотрите на следующий код:

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

В части eval мне нужно добавить одну переменную j, но это не работает - думаю, знак плюс внутри строки как-то связан с ней.

Так как я могу это исправить?

Спасибо

Ответы [ 4 ]

2 голосов
/ 13 ноября 2011

Вам вообще не нужно использовать eval.

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

Не используйте eval вообще: Причина: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval#Don%27t_use_eval!

2 голосов
/ 13 ноября 2011

Ты имеешь в виду это?

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

Я бы посоветовал вам еще раз взглянуть на вашу общую проблему, хотя использование 1004 * почти для всего, что обычно означает, что у вас где-то есть проблема с дизайном.

0 голосов
/ 13 ноября 2011

Не использовать eval

Предполагая, что переменные card_S# находятся в глобальной области видимости, вы можете изменить свой код на:

for(var j = 0; j <= 12; j++)
    deck[j] = window["card_S" + (j + 1)];
0 голосов
/ 13 ноября 2011

Как насчет:

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