[2022-12-20 ๐Ÿ˜ถโ€๐ŸŒซ๏ธ TIL ]

Burkeyยท2022๋…„ 12์›” 20์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
26/157
function nestedEvenSum (obj) {
  var vals = Object.values(obj)
  var result = 0
  console.log('vals', vals)
  for(let i= 0 ; i < vals.length; i++){
    if(typeof vals[i] === 'number'){
      result += vals[i]
    }else if(typeof vals[i] === 'object'){
      result += nestedEvenSum(vals[i])
    }else{
      result += 0
    }
  }
  return result
  // add whatever parameters you deem necessary - good luck!
}


var obj1 = {
  outer: 2,
  obj: {
    inner: 2,
    otherObj: {
      superInner: 2,
      notANumber: true,
      alsoNotANumber: "yup"
    }
  }
}

var obj2 = {
  a: 2,
  b: {b: 2, bb: {b: 3, bb: {b: 2}}},
  c: {c: {c: 2}, cc: 'ball', ccc: 5},
  d: 1,
  e: {e: {e: 2}, ee: 'car'}
};

console.log(nestedEvenSum(obj1)); // 6
console.log(nestedEvenSum(obj2)); // 19

์ธ์ˆ˜๋กœ ๋“ค์–ด์˜จ ๊ฐ์ฒด์˜ ๊ฐ’๋“ค ์ค‘์— ์ˆซ์ž ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ ์ถœ๋ ฅ

function collectStrings(obj){
  var arr = []
  var vals = Object.values(obj)
  for (let i = 0; i < vals.length; i++){
    if (typeof vals[i] === 'string'){
      arr.push(vals[i])
    }else{
      arr = arr.concat(collectStrings(vals[i]))
    }
  }
  return arr
}

const obj = {
  stuff: "foo",
  data: {
      val: {
          thing: {
              info: "bar",
              moreInfo: {
                  evenMoreInfo: {
                      weMadeIt: "baz"
                  }
              }
          }
      }
  }
}

console.log(collectStrings(obj))//[ 'foo', 'bar', 'baz' ]

์ธ์ˆ˜๋กœ ๋“ค์–ด์˜จ ๊ฐ์ฒด์˜ ๊ฐ’์ด ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฌถ์–ด์„œ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ ๊ตฌํ˜„

profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€