首页 > 其他分享 >遍历对象的几种方式

遍历对象的几种方式

时间:2022-09-01 10:57:31浏览次数:64  
标签:objA 遍历 console log 对象 Object 几种 ------------ key

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
        /* 
        
        当初面试的时候紧张了还是咋了,只回答了for in 其他两种我也知道为啥当时没答上呢 我擦 巩固一下
        
        */


      //对象在几种遍历
      const objA = {
        id: 1,
        name: "作业帮",
        age: 30,
        sex: "牛",
      };
      // 总结第一种for in 第二种 1、Object.keys(obj) 2、Object.values(obj) 第三种:使用Object.getOwnPropertyNames(obj)

      /* 
        
        @1.第一种for in
        */
      /* *************************************** */
      // 注释1
      // for (let key in objA){
      //     console.log(key,'------------',objA[key])
      // }
      // 打印如下
      //  id ------------ 1
      //  name ------------ 作业帮
      //  age ------------ 30
      //  sex ------------ 牛

      /* *************************************** */
      // 注释2
      // 使用for in会遍历对象的所有属性,还可以遍历到原型上的属性和方法
      // Object.prototype.baby = '小宝贝'
      // Object.prototype.get = function() {
      //     console.log('这是原型上的方法');
      // }
      // for (let key in objA){
      //     console.log(key,'------------',objA[key])
      // }
      // 打印如下
      //  id ------------ 1
      //  name ------------ 作业帮
      //  age ------------ 30
      //  sex ------------ 牛
      //  baby ------------ 小宝贝
      //  get ------------ ƒ () {
      //     console.log('这是原型上的方法');
      // }
      /* *************************************** */
      // 注释3 如果不想遍历原型上的属性或方法则 使用hasOwnProperty()方法可以判断某属性是不是该对象的实例属性。
      // Object.prototype.baby = '小宝贝'
      // Object.prototype.get = function() {
      //     console.log('这是原型上的方法');
      // }
      // for (let key in objA){
      //     if(objA.hasOwnProperty(key)){
      //         console.log(key,'------------',objA[key])
      //     }

      // }
      // 打印如下
      //  id ------------ 1
      //  name ------------ 作业帮
      //  age ------------ 30
      //  sex ------------ 牛

      /* *************************************** */

      /* 
        
        @2.第二种:

        1)、Object.keys(obj) 参数obj:要返回其枚举自身属性的对象

        2)、Object.values(obj)
        */
        // console.log(Object.keys(objA)) //objA对象的key组成的数组 ['id', 'name', 'age', 'sex']

        // console.log(Object.values(objA))//objA对象的value组成的数组[1, '作业帮', 30, '牛']
        /* 
        
        @3.第三种:使用Object.getOwnPropertyNames(obj)


        */
        console.log(Object.getOwnPropertyNames(objA))//['id', 'name', 'age', 'sex']
        // 在通过循环这个数组去找到对应的值
        Object.getOwnPropertyNames(objA).forEach((item)=>{
            console.log(item,'-----------',objA[item])
        })
        // 打印如下
        //  id ------------ 1
        //  name ------------ 作业帮
        //  age ------------ 30
        //  sex ------------ 牛

    </script>
  </body>
</html>

 

标签:objA,遍历,console,log,对象,Object,几种,------------,key
From: https://www.cnblogs.com/myfirstboke/p/16645721.html

相关文章