美文网首页
5种js遍历对象属性的方法

5种js遍历对象属性的方法

作者: mudssky | 来源:发表于2021-02-03 17:59 被阅读0次

ES6 一共有 5 种方法可以遍历对象的属性。

(1)for...in

for...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。

(2)Object.keys(obj) ie9

Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。

(3)Object.getOwnPropertyNames(obj) ie9

Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。

(4)Object.getOwnPropertySymbols(obj)

Object.getOwnPropertySymbols返回一个数组,包含对象自身的所有 Symbol 属性的键名。

(5)Reflect.ownKeys(obj)

Reflect.ownKeys返回一个数组,包含对象自身的(不含继承的)所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。

以上的 5 种方法遍历对象的键名,都遵守同样的属性遍历的次序规则。

  • 首先遍历所有数值键,按照数值升序排列。
  • 其次遍历所有字符串键,按照加入时间升序排列。
  • 最后遍历所有 Symbol 键,按照加入时间升序排列。

​ 其中兼容性最好的是for... in来进行遍历,因为我们通常只需要遍历对象自身拥有的属性 所以使用 Object.prototype.hasOwnProperty() 兼容到ie5.5 方法来排除继承的属性

for (var key  in targetObj) {
    if (Object.prototype.hasOwnProperty.call(targetObj, key)){
        //对筛选出的对象自身拥有的key进行处理
    }
}

注意:即使属性的值是 nullundefined,只要属性存在,hasOwnProperty 依旧会返回 true

​ 如果不在意兼容性问题,用keys方法,搭配for... of来遍历也不错,、

​ for...of是es6引入的用于遍历可迭代对象的语法,相当于python里的for in。

​ js的for...in别扭的地方在于,遍历数组和对象都是返回的key值,遍历数组是下标值。for...of遍历数组会返回每一个值,跟foreach类似的效果,但是对于对象,只支持实现了迭代器的对象。

for (const key of Object.keys(targetObj)) {
    //对遍历到的key值进行处理
}

相关文章

  • 2018-07-25 学习总结

    1.js对象 造器函数内部定义对象的方法 循环遍历对象属性(for ....in 循环遍历键) 2.indexOf...

  • JS常用方法整理-遍历对象

    1. 简介 JS中经常需要对对象的属性进行遍历,下面我们来总结一下JS遍历对象属性的几种方法。 2. for......

  • 79-对象遍历

    什么是对象的遍历对象的遍历就是依次取出对象中所有的属性和方法 如何遍历一个对象?在JS中可以通过高级for循环来遍...

  • js中数组对象去重的方法

    采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法 参考js中数组对象去重的方法

  • JS Tips

    遍历对象的所有属性 添加属性 给普通的 JS 对象添加属性: 但是对于 Mongodb 中的对象,不可直接添加属性...

  • 2018-09-07

    属性的遍历ES6 一共有 5 种方法可以遍历对象的属性。 (1)for...in for...in循环遍历对象自身...

  • javascript对象的属性介绍

    本篇主要介绍JS中对象的属性,包括:属性的分类、访问方式、检测属性、遍历属性以及属性特性等内容。 属性:对象的成员...

  • Javascript中的遍历

    对象遍历 方法是否可遍历不可枚举属性是否可遍历Symbol属性是否可原型链属性Object.keys-------...

  • 对象遍历

    遍历对象属性的方法及区别 1.for...in for...in循环遍历对象自身的和继承的可枚举属性(不含Symb...

  • 对象的遍历

    js原生方法遍历的四种方式 由于要看是否遍历对象原型__proto__上的属性,第一步先写构造函数 functio...

网友评论

      本文标题:5种js遍历对象属性的方法

      本文链接:https://www.haomeiwen.com/subject/fijmtltx.html