Estoy tratando de crear un mapa para mostrar todas las claves que se necesitan para acceder a un valor específico dentro de un diccionario anidado.
var example = {"parent1": { "parent2": {}, "parent3": {}, "parent4": { "sub_1": {}, "sub_2": { "sub_sub2": { "sub_sub_sub2": ["some list 1"], "sub_sub_sub2_1": ["some list 2"] }, "sub_3": { "sub_sub3": ["some list 3"] } }, "sub_4": ["some list 4"] }, "parent5": {}, "parent6": {}, "parent7": {}, "parent8": { "sub_par8": {} }, "parent9": {} }}Quiero que la salida me muestre todas las claves necesarias para acceder a los valores que son listas. Por ejemplo, si quiero saber qué valores son listas, la salida devolverá algo como:
return_list = [ ["parent4", "sub_2","sub_sub2", "sub_sub_sub2", ["some list 1"]], ["parent4", "sub_2","sub_sub2", "sub_sub_sub2_1", ["some list 2"]], ["parent4", "sub_3","sub_sub3", ["some list 3"]], ["parent4", "sub_4",["some list 4"]], ]Mi idea es que luego puedo iterar a través de esta lista anidada para obtener la información que necesito. Pero si tiene una mejor idea sobre cómo mostrar la información, hágamelo saber.
He intentado crear una función que haga lo que estoy buscando, pero está rota
var sorted = [] var temp = [] function sort(dictionary){ for (var [key,value] of Object.entries(dictionary)){ temp.push(key) if (value.constructor == Object){ sort(value) } else if (value.constructor == Array){ temp.push(value) sorted.push(temp) } temp = [] } } Si ejecuta el código anterior, notará que la lista sorted no tiene el formato correcto. Cualquier ayuda sería muy apreciada. He estado tratando de resolver esto para dejar de fumar algún tiempo :)