redoing tree as obj tree, not array

master
Matthew Huntington 3 years ago
parent eaba0d124c
commit 4119483adf

@ -30,40 +30,27 @@
//return results.concat(breakDown(nextNum)) //return results.concat(breakDown(nextNum))
//} //}
const breakDown = (num)=>{ const breakDown = (node)=>{
const results = []; if(node.value > 3){
node.left = { value: 3 }
let firstResult = num - 3; node.right = breakDown({value:node.value-3})
if(firstResult > 3){
firstResult = breakDown(firstResult);
}
const firstArray = [3, firstResult];
results.push(firstArray);
let secondResult = num - 2;
if(secondResult > 3){
secondResult = breakDown(secondResult);
} }
const secondArray = [2, secondResult]; return node;
results.push(secondArray); }
const tree = breakDown({value:8});
return results; console.log(tree);
}
const result = breakDown(7);
console.dir(result, {depth:null});
const traverse = (tree)=>{ const getLeaves = (node, leafArray)=>{
let result = ''; if(node.left === undefined && node.right === undefined){
for(let node of tree){ leafArray.push(node.value);
if(Number.isInteger(node)){ } else {
result += node + ', '; getLeaves(node.left, leafArray)
} else { getLeaves(node.right, leafArray)
result += traverse(node);
}
} }
return result; return leafArray;
} }
const flattenedTree = traverse(result); const leaves = getLeaves(tree, []);
console.log(flattenedTree);
console.log(leaves);

Loading…
Cancel
Save