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' ]
์ธ์๋ก ๋ค์ด์จ ๊ฐ์ฒด์ ๊ฐ์ด ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ๋ฅผ ๋ฐฐ์ด๋ก ๋ฌถ์ด์ ์ถ๋ ฅํด์ฃผ๋ ํจ์ ๊ตฌํ