Javascript – recupera il percorso della proprietà dell’object

Ho il seguente object

var obj = {}; obj.foo = {}; obj.foo.bar = "I want this"; 

dato il “percorso” "foo.bar" come una stringa, come faccio a recuperare obj.foo.bar (o obj[foo][bar] )?

Ecco un modo:

 function getKey(key, obj) { return key.split('.').reduce(function(a,b){ return a && a[b]; }, obj); } getKey('foo.bar', obj); //=> "I want this" 

se path = "foo.bar" allora puoi scrivere

 var keys = path.split('.'); console.log(obj[keys[0]][keys[1]]); 

Un altro modo :

 function resolve(root, path){ try { return (new Function( 'root', 'return root.' + path + ';' ))(root); } catch (e) {} } resolve(obj, 'foo.bar'); // "I want this" 

Maggiori informazioni su questo: https://stackoverflow.com/a/18381564/1636522

basta usare obj.foo.bar..che funzionerà;