突发奇想想练练递归(很能锻炼逻辑思维),虽然好像实际应用不会要求取对象所有的key
const TARGET = {
a: {
b: {
c: 1
},
e: 4,
f: 5,
g: 6
},
wo:{
xixi:233
}
}
// 获得的key数组
const arr = []
let arr1 = []
// 通过递归获取对象所有key
function queryKey(obj){
for(let key in obj){
arr.push(key)
// 判断子节点是否为对象,是的话则递归,最后为键值对而不是对象则跳出
if(obj[key] instanceof Object){
queryKey(obj[key])
}
}
}
function queryKey1(obj){
arr1 = [...arr1,...Object.keys(obj)]
for(let key in obj){
// 判断子节点是否为对象,是的话则递归,最后为键值对而不是对象则跳出
if(obj[key] instanceof Object){
queryKey1(obj[key])
}
}
}
queryKey(TARGET)
queryKey1(TARGET)
console.log(arr);
console.log(arr1);
打印结果: