JSFiddle - React, Tailwind, and code Playground
by Steven Senkus
JavaScript
const directories = {
a: {
b: {
c: null,
d: null
},
e: null,
f: null,
g: {
h: {
i: {
j: null,
k: null
}
}
}
}
}
function findNumSubdirectoriesWithoutChildren(dirs) {
let result = 0;
function findSubdir(subdir) {
console.log('findSubdir', subdir);
Object.keys(subdir).forEach((dir) => {
if (subdir[dir] === null) {
result++;
} else {
findSubdir(subdir[dir]);
}
})
}
if (Object.keys(dirs).length === 0) return result;
findSubdir(dirs);
/* Object.keys(dirs).forEach((dir) => {
if (dirs[dir] === null) {
result++;
} else {
Object.keys(dirs[dir]).forEach((sub) => {
if (dirs[dir][sub] === null) {
result++;
} else {
Object.keys(dirs[dir][sub]).forEach((subsub) => {
if (dirs[dir][sub][subsub] === null) {
result++;
} else {
console.log('use recursion!');
}
});
}
});
}
}); */
return result;
}
console.log(findNumSubdirectoriesWithoutChildren(directories));