eval () не работает во время итерации объекта - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь выполнить следующий фрагмент кода ..

var sUserID = "HELLO".toUpperCase();
                var oAlphabets = {
                    "A": 1,
                    "B": 2,
                    "C": 3,
                    "D": 4,
                    "E": 5,
                    "F": 6,
                    "G": 7,
                    "H": 8,
                    "I": 9,
                    "J": 10,
                    "K": 11,
                    "L": 12,
                    "M": 13,
                    "N": 14,
                    "O": 15,
                    "P": 16,
                    "Q": 17,
                    "R": 18,
                    "S": 19,
                    "T": 20,
                    "U": 21,
                    "V": 22,
                    "W": 23,
                    "X": 24,
                    "Y": 25,
                    "Z": 26
                };
                var iEncoded = 0, sEncoded;
                for (var i in sUserID) {
                    var sEval = "oAlphabets."+sUserID[i];
                    iEncoded = iEncoded + eval(sEval);
                }
                if(iEncoded <100){
                    sEncoded = "0"+iEncoded;
                }
                else{
                    sEncoded = ""+iEncoded;
                }

Он работает как положено в Chrome и возвращает результат 078. Однако он выдал ошибку «Ожидается»; в IE 11.

В чем здесь проблема и как от нее избавиться ..

С уважением,

Фахад Хамса

1 Ответ

0 голосов
/ 17 сентября 2018

Существует нулевая причина для использования eval. Просто используйте скобочные обозначения, как будто они предназначены для использования с переменными.

iEncoded += oAlphabets[sUserID[i]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...