各种遍历方法以及注意点

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

参考 : 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()代替。
相关文章
|
2月前
集合中常见方法及遍历方式
集合中常见方法及遍历方式
26 1
|
10天前
|
索引 Python
如何优雅地遍历可迭代对象?
如何优雅地遍历可迭代对象?
17 0
|
3月前
|
存储
链表的遍历方式
链表的遍历方式
|
5月前
|
C#
C# 循环遍历使用
C# 循环遍历使用
150 0
|
5月前
|
JavaScript 小程序
遍历类数组之获取多个dom节点并遍历
遍历类数组之获取多个dom节点并遍历
|
算法
使用遍历方法和分治法求两个数组的值
看似简单的姐数组中的最大值实际上体现了不同的思路本文将以比较数组大小为背景,分别展示普通算法和分治法,通过对比来简述分治法。 问题描述 给定一个整数数组,编写一个算法来找到数组中的最大值和最小值。
70 0
关于对象遍历的时候的一些排序问题
关于对象遍历的时候的一些排序问题
关于对象遍历的时候的一些排序问题
|
PHP 开发者
对象遍历|学习笔记
快速学习对象遍历
对象遍历|学习笔记
v-for遍历对象、数组
v-for遍历对象、数组
116 0
|
安全 Java
遍历List移除元素的若干种方法
遍历List移除元素的若干种方法
343 0