题目要求打印以下的内容
有两种写法,我今天真的是 脑子转不过来了,一定要记录一下,以后拿出来看看,不然下一次又不知道是啥了
1.方法一:借助for…in
let person = {
name: 'henry',
age: 18,
family: {
papa: 'jack',
mama: 'mary',
sister: 'jane'
}
};
// 使用 for...in
function byForIn(obj) {
// 循环 obj(person)对象
for (const key in obj) {
if (key === 'family') {
const family = obj.family;
// 循环打印 person.family
for (const familyKey in family) {
console.log(familyKey + ':' + family[familyKey]);
}
} else {
console.log(key + ':' + obj[key]);
}
}
}
2.方法二:借助 Object.keys
// 借助 Object.keys
function byKeys(obj) {
const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i++) {
if (keys[i] === 'family') {
// 获取 person.family 的所有属性
const familyKeys = Object.keys(obj.family);
for (let i = 0; i < familyKeys.length; i++) {
// 打印 person.family 中的键值对
console.log(familyKeys[i] + ':' + obj.family[familyKeys[i]]);
}
} else {
// 打印 person 中除了 family 外的键值对
console.log(keys[i] + ':' + obj[keys[i]]);
}
}
}
console.log('使用 for...in:');
byForIn(person);
console.log('------------------------');
console.log('借助 Object.keys:');
byKeys(person);
我是一个初学者。很多的方法是不会的,这个地方正好不太清楚,记录一下,可能还有很多方便又简单的方法,我现在还没有接触