JSFiddle - React, Tailwind, and code Playground
by brigand
JavaScript
const traverse = (rootObject) => {
const result = [];
const path = [];
const inner = (object) => {
const keys = Object.keys(object);
if (keys.length === 0) {
result.push(path.slice());
} else {
for (const key of keys) {
path.push(key);
inner(object[key]);
path.pop();
}
}
};
inner(rootObject);
return result;
};
console.log(
traverse({
"shark": {
"TEST": {
"test": {
"meta": {
"status": "regular"
},
"multiple-run": {
"meta": {
"creator_user": "gold"
}
}
}
}
},
"octopus": {
"J212": {
"F291-21": {
"meta": {
"status": "regular"
},
"multiple-run": {
"meta": {
"creator_user": "gold"
}
}
}
}
}
}),
);