3

I have this path in a string: var path = 'bonds.international.emergent' and the object portfolio.

I want to access portfolio.bonds.international.emergent, using the path in the path variable.

Something like portfolio[path], which obviously doesn't work. Anyone knows how to do this?

bmpasini
  • 1,503
  • 1
  • 23
  • 43

1 Answers1

5

If it's only dots, you can split:

var path = 'bonds.international.emergent';
var target = portfolio;
path = path.split('.');
for(var i = 0; i < path.length; i++) {
  target = target[path[i]];
}
alert(target); // = portfolio.bonds.international.emergent

Else, you can eval:

var target = eval('portfolio.' + path);

But avoid eval if you can.

KyleK
  • 4,643
  • 17
  • 33