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

Loading…
Cancel
Save