JS里面对象部分之遍历对象属性并打印

题目要求打印以下的内容
在这里插入图片描述
有两种写法,我今天真的是 脑子转不过来了,一定要记录一下,以后拿出来看看,不然下一次又不知道是啥了
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);

我是一个初学者。很多的方法是不会的,这个地方正好不太清楚,记录一下,可能还有很多方便又简单的方法,我现在还没有接触

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值