题目:定义一个多层嵌套的对象 {a:{b:{c:1}}},写一个函数,如果传入 ‘a,b,c’ 则返回true,否则返回false
/**
* {a:{b:{c:1}}}
* 如果传入a,b,c 返回true 否则false
*/
function validate(str) {
let obj = {a:{b:{c:1}}};
let arr = str.split(',');
const valid = (i, newObj) => {
if (i === arr.length) {
return true;
}
if (newObj.hasOwnProperty(arr[i])) {
return valid(i+1, newObj[arr[i]]); // !!!重点,如果不加return相当于函数无返回值
} else {
return false;
}
}
return valid(0, obj);
}
console.log(validate('a,b,c')); // true
console.log(validate('a,c,b')); // false