各种遍历方法以及注意点

简介: 各种遍历方法以及注意点

参考 : https://es6.ruanyifeng.com/#docs/object

可枚举性
对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。

let obj = {
    foo: 123 };
Object.getOwnPropertyDescriptor(obj, 'foo')
//  {
   
//    value: 123,
//    writable: true,
//    enumerable: true,
//    configurable: true
//  }

描述对象的enumerable属性,称为“可枚举性”,如果该属性为false,就表示某些操作会忽略当前属性。

目前,有四个操作会忽略enumerable为false的属性。

for...in循环:只遍历对象自身的和继承的可枚举的属性。
Object.keys():返回对象自身的所有可枚举的属性的键名。
JSON.stringify():只串行化对象自身的可枚举的属性。
Object.assign(): 忽略enumerable为false的属性,只拷贝对象自身的可枚举的属性。

//这四个操作之中,前三个是 ES5 就有的,最后一个Object.assign()是 ES6 新增

总的来说,操作中引入继承的属性会让问题复杂化,大多数时候,我们只关心对象自身的属性。所以,尽量不要用for...in循环,而用Object.keys()代替。
相关文章
|
1月前
集合中常见方法及遍历方式
集合中常见方法及遍历方式
25 1
|
2月前
|
Java
for-each循环使用iterator进行遍历
for-each循环使用iterator进行遍历
25 0
|
2月前
|
存储
链表的遍历方式
链表的遍历方式
|
4月前
|
C#
C# 循环遍历使用
C# 循环遍历使用
150 0
|
4月前
|
JavaScript 小程序
遍历类数组之获取多个dom节点并遍历
遍历类数组之获取多个dom节点并遍历
关于对象遍历的时候的一些排序问题
关于对象遍历的时候的一些排序问题
关于对象遍历的时候的一些排序问题
ArrayList 三种遍历方法(for循环+下标、foreach、使用迭代器)
ArrayList 三种遍历方法(for循环+下标、foreach、使用迭代器)
|
PHP 开发者
对象遍历|学习笔记
快速学习对象遍历
对象遍历|学习笔记
v-for遍历对象、数组
v-for遍历对象、数组
114 0