我在使用下面的代码首先递归循环“对象”对象时使用了return关键字,但它仅通过循环多次导致king属性的对象,当它到达sika属性和值时,它结束了循环。
let object = {king: {lisa: {biza: {sika: 21}}}, queen:{billy: {silly: 23}}, guard: {son: 4}};
function goThrough(obj) {
let list = Object.keys(obj);
for(let keys of list) {
console.log("property: " + keys + ", value: " + JSON.stringify(obj[keys]));
goThrough(obj[keys]); //Note: using return keyword here results in only king's values looped over
}
}
goThrough(object);
但是当我省略 return 时,它会遍历其余对象及其属性值对。有人可以解释为什么在使用 return 时它只以第一个对象值结尾吗?