javascript – Accessing a property's value via a String


Suppose I have the following object:

var pessoa = {
    nome: "João",
    animais: {
        cachorro: "Rex",
        gato: "Pipoca",

I need a function to do something like this:

var gatoDoJoao = pessoa["animais.gato"];

I know that in this example the correct one is pessoa.animais.gato , but I want the value to be accessed via a string. Something like: var gatoDoJoao = acessar(pessoa, "animais.gato");


I finally managed to solve it!

var obj = {
    nome: "João",
    animais: {
        gato: "Foo",
        cachorro: "Bar"

function acessar(obj, prop){
    var tmp = obj;
    var campos = prop.split(".");

    for(var i in campos){
            tmp = tmp[campos[i]];
            return false;

    return tmp;

var nomeDoGato = acessar(obj, "animais.gato");
Scroll to Top