对象的遍历方法

  • Post author:
  • Post category:其他




第一种 for…in

循环遍历对象自身属性和继承的可枚举属性

代码如下

<script>
      let obj = { 0: "a", 1: "b", 3: "c" };
      for (let key in obj) {
        console.log(key, ":", obj[key]);
        // 0 : a
        // 1 : b
        // 3 : c
      }
    </script>



第二种 Object.keys()

返回一个数组,包含对象自身可枚举属性(不包含继承)

代码如下

<script>
      let obj = { 0: "a", 1: "b", 3: "c" };
      let obj1 = Object.keys(obj);
      // obj1=["0", "1", "3"]
      obj1.forEach((key) => {
        console.log(key, obj[key]);
        // 0  a
        // 1  b
        // 3  c
      });
    </script>



第三种 Object.getOwnPropertyNames(obj)

返回一个数组,包含对象自身所有属性(包括不可枚举属性)

代码如下

<script>
      let obj = { 0: "a", 1: "b", 3: "c" };
      let obj2 = Object.getOwnPropertyNames(obj);
      console.log(obj2);
      // obj2=["0", "1", "3"]
      obj2.forEach(function (key) {
        console.log(key, obj[key]);
        // 0  a
        // 1  b
        // 3  c
      });
    </script>



第四种 Reflect.ownKeys(obj)

返回一个数字,包含对象自身的所有属性(不管属性名是Symbol或字符串,也不管是否可枚举.)


特别说明


1.Symbol:ES6新增了一种数据类型:Symbol,表示独一无二的值,Symbol最大的用途是用来定义对象的唯一属性名

2.关于枚举:在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。



版权声明:本文为xiaokuangren_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。