Как найти и получить последних потомков дерева javascript? - PullRequest
0 голосов
/ 05 августа 2020

Я хочу получить все последние узлы из такого дерева, как это, в этом случае я должен получить все узлы, такие как zona_urbana, franja_ejidal и something1, как я могу это сделать? Большое спасибо за любую помощь !!

var o = 
    { "mexico": {
            "cancun": {
                "zona_urbana": "something",
                "franja_ejidal": "somehing"
            },
            "something1": "something"
        }
    }

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Попробуйте это, getDeepKeys () будет вызывать рекурсивно.

var o = 
    { "mexico": {
            "cancun": {
                "zona_urbana": "something",
                "franja_ejidal": "somehing"
            },
            "something1": "something"
        }
    }

function getDeepKeys(obj) {
    var keys = [];
    for(var key in obj) {
        if(typeof obj[key] === "object") {
            var subkeys = getDeepKeys(obj[key]);
            keys = subkeys.map(function(subkey) {
                return subkey;
            });
        }
        else{
            keys.push(key);
        }
    }
    return keys; // ["zona_urbana", "franja_ejidal", "something1"]
}

getDeepKeys(o);
0 голосов
/ 05 августа 2020

Вы можете получить доступ к значениям объекта следующим образом:

var o = 
    { "mexico": {
            "cancun": {
                "zona_urbana": "something",
                "franja_ejidal": "somehing"
            },
            "something1": "something"
        }
    };

    console.log(Object.values(o));
...