2015-08-07 7 views
0

Глупый пример:Доступ к элементу вложенного объекта с использованием переменной для ключа?

<script> 
var a = { 
    'b' : { 
     'c' : "success!!" 
    } 
}; 
var d = 'b.c'; 
</script> 

Как я могу получить доступ к success!!, если я не могу пойти на очевидное решение a.b.c или a['b']['c'], но вместо этого использовать d? Я пробовал a[d], что похоже на трюк. Я также пытался поиграть с eval(). Возможно ли это?

+1

Попробуйте это http://jsfiddle.net/442c6xkk/1/ –

+1

Ну, если вы собираетесь использовать eval-alert (eval ('a.' + d) :-) – potatopeelings

+0

Использование eval для th это просто неправильно. Не делай этого. – Razem

ответ

1

Если это действительно необходимо иметь ключи в строке разделенной точки, я хотел бы использовать раскол и сократить:

var success = d.split(".").reduce(function (obj, key) { 
    return obj[key]; 
}, a); 
1

Попробуйте расщепление

var a = { 
 
    'b' : { 
 
     'c' : "success!!" 
 
    } 
 
}; 
 
var d = 'b.c'; 
 

 
var splat = d.split('.'); 
 

 
console.log(a[splat[0]][splat[1]]);

Смежные вопросы