Есть такой код:
function getResult(result) {
response = result.langs;
for (key in response){
switch (response[key][0]){
case 'A':
eval('core_object.language_code.a.'+key+'='+response[key]+';')
break;
//Анологично до конца алфавита
}
Значение response
это объект со множеством значений типа:
{
af: 'Afrikaans',
am: 'Amharic'
//И так далее
}
Значение key = af
и так далее, а response[key] = 'Afrikaans'
и так далее.
Тут возникает проблема разобраться в сути которой я не могу: в коде eval('core_object.language_code.a.'+key+'='+response[key]+';')
переменная key
, как и предполагалось используется как строка содержащая значение 'af'
а вот строка содержащаяся в response[key]
используется как переменная из за чего получается ошибка: ReferenceError: Afrikaans is not defined
.
Почему и как это исправить?
Строка, которая подается в eval
:
core_object.language_code.a.af = Afrikaans;
То, что справа от знака "равно", понимается как переменная. Но такой переменной нет.
eval('core_object.language_code.a.'+key+'="'+response[key]+'";')
Получится core_object.language_code.a.af = "Afrikaans";
.
Или
eval('core_object.language_code.a.'+key+'=response.'+key+';')
Получится core_object.language_code.a.af = response.af;
.
Или без eval
:
core_object.language_code.a[key] = response[key];
А зачем там вообще eval? По моему так будет то же самое:
case 'A':
core_object.language_code.a[key] = response[key];
break;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как понять, как стиль или правило применяется к картинке на сайте, с помощью которого она как бы тонируется, затемняетсяХочу убрать это
Задача такая: нужно "вернуть родословную" в 2 объектах те есть 2 объекта obj1 и obj2 и их свойства: