利用 ES8 中 Object.entries() 和 for...of 循环实现对象遍历

阅读时长 3 分钟读完

在前端开发中,我们经常需要对对象进行遍历,以获取或修改对象的属性值。ES6之前,我们主要是使用 for...in 循环来实现对象的遍历。但是,for...in 循环有以下几个缺点:

  • 遍历顺序不确定,不同的 JavaScript 引擎可能会遍历的顺序不同。
  • 遍历时会把对象的原型链上的属性也遍历出来,需要通过 hasOwnProperty 判断是否为自身属性。
  • 不支持 Map 和 Set 数据结构的遍历。

ES8中引入了 Object.entries() 方法,该方法可以将对象转成键值对的数组形式,方便进行遍历。结合 for...of 循环,我们可以更方便地遍历对象。

Object.entries() 方法

Object.entries() 方法返回一个给定对象自己可枚举属性的键值对数组。该方法的语法如下:

其中,obj 是需要转换为键值对数组的对象。

Object.entries() 方法返回的数组形式如下:

可以通过 for...of 循环或者数组的 forEach() 方法进行遍历。

for...of 循环

ES6中引入了 for...of 循环,该循环可以遍历数组、字符串、Map、Set 等可迭代对象。for...of 循环的语法如下:

其中,variable 为循环中的变量,object 为要遍历的对象。for...of 循环会迭代遍历 object 对象,并将当前的值赋值给 variable,然后执行 statement 语句。

结合 Object.entries() 方法和 for...of 循环,我们可以用以下方法遍历对象:

输出结果为:

示例代码

以下示例代码演示了如何利用 Object.entries() 和 for...of 循环实现对象的遍历。

-- -------------------- ---- -------
-- ----
----- --- - --- -- -- -- -- ---

--- ------ ----- ------ -- -------------------- -
  ---------------- -------
-

-- --- ----
----- --- - --- ------------- ------ ------- ---- ---------- -------

--- ------ ----- ------ -- ---- -
  ---------------- -------
-

-- --- ----
----- --- - --- ------- -- ----

--- ------ ----- -- ---- -
  -------------------
-
展开代码

通过以上示例代码,我们可以更加方便地遍历对象。在实际开发中,可以根据实际情况选择适合的遍历方式。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b803ee306f20b3a656f969

纠错
反馈

纠错反馈