Home > database >  How to convert recursion to loop?
How to convert recursion to loop?

Time:02-22

I need convert this code to loops , but i have no idea how .

let object = {
  x: 250,
  a: 5,
  b: 5,
  c: {
    ac: 5,
    acd: 10
  }
};

let objectPropertiesSum = object => {
  let sum = 0;
  for (const value of Object.values(object)) {
    if (typeof(value) === "number") {
      sum  = value;
    } else if (typeof(value) === "object") {
      sum  = objectPropertiesSum(value);
    }
  }
  return sum;
};
console.log(objectPropertiesSum(object));

CodePudding user response:

Where are you getting stuck? Maybe this can help you get started.

function sumValues(obj) {
  const stack = [obj]
  let sum = 0
  let o, v
  while (stack.length) {  /* as long as there are items on the stack */
    o = /* get an item off the stack */
    for (v of /* obj values */) {
      if (/* v is a number */)
        /* update the sum */
      else if (/* v is an object */)
        /* update the stack */
      else
        /* v is not a Number or an Object */
    }
  }
  return sum
}
  • Related