JSFiddle - React, Tailwind, and code Playground
by Aaron Zhang
JavaScript
function DFS(current, list) {
if (typeof current != 'object') {
return;
}
for (var k in current) {
list.push(k);
console.log(list);
DFS(current[k], list);
}
return list;
}
function BFS(current, level, levelDict) {
levelDict[level] = levelDict[level] || [];
for (var k in current) {
levelDict[level].push(k);
BFS(current[k], level + 1, levelDict);
}
return levelDict;
}
function rootToLeaf(current, trace, list) {
if (typeof current != 'objcet' && trace.length) {
list.push(trace);
}
for (var k in current) {
var newTrace = trace.concat([k]);
rootToLeaf(current[k], newTrace, list);
}
return list;
}
var root = {
"a": {
"b": {
"c": 1
},
"b1": {
"k": 3
}
},
"d": {
"e": 3,
"f": {
"g": 3,
"h": 1
}
},
"i": 12
};
rootToLeaf(root, [], []);