在 ES9 中使用 Object.entries 获取对象的所有属性

阅读时长 3 分钟读完

ES9(ECMAScript 2018)是 JavaScript 的最新版本之一,其中包含了许多新功能和语言增强。其中一个新功能是 Object.entries,它使得获取对象中所有属性和对应值变得非常容易和便捷。

Object.entries 的定义

Object.entries 是一个由 ECMAScript 2018 引入的内置函数,它的作用是将一个对象转换成一个键值对数组。每个元素都是一个形如 [key, value] 的数组,其中 key 是对象的属性名,value 是该属性的值。

这个函数能够极大地简化代码量,尤其是在一些涉及遍历对象属性的情况下。

Object.entries 的应用

获取对象属性

假设我们有一个 person 对象,它包含了一个人的姓名、年龄和所在城市等属性。我们可以使用 Object.entries 来获取 person 对象中所有的属性及其对应值:

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

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

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

遍历对象属性

我们也可以使用 for...of 循环来遍历一个对象的属性。以下是一个使用 Object.entries 遍历 person 对象属性的示例代码:

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

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

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

对象属性过滤

我们也可以结合 Array.prototype.filter() 方法使用 Object.entries 来过滤对象属性。以下是一个使用 Object.entries 过滤出年龄小于 25 的属性的示例代码:

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

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

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

Object.defineProperty 的局限性

在 ES6 之前,我们可以使用 Object.defineProperty 来给一个对象添加和修改属性。但是,Object.defineProperty 有一些局限性:

  • 无法遍历对象实例上的非 enumerable 属性
  • 无法遍历对象的原型链上的属性

因此,为了更好地遍历一个对象的属性值,我们可以使用 Object.entries 来解决这个问题。Object.entries 不仅包含对象自身属性,还包含原型链上的属性。

结语

在 ES9 中使用 Object.entries 能够更加简化代码,同时也能够提高代码性能和可读性。它可以用于获取对象属性、遍历对象属性、以及过滤对象属性等。Object.entries 的出现极大地增加了 JavaScript 对象处理功能的灵活性,让我们撰写更加优质的代码变得更加容易。

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

纠错
反馈

纠错反馈