了解 ECMAScript 2017 (ES8) 中 Object.values() 和 Object.entries() 方法的区别

阅读时长 4 分钟读完

在 ECMAScript 2017 (ES8) 中,我们可以使用两个新的方法来操作对象:Object.values() 和 Object.entries()。这两个方法非常有用,可以帮助我们更方便地操作对象。

Object.values()

Object.values() 方法接受一个对象作为参数,返回该对象中所有属性值的一个数组。这个数组的顺序和对象属性的顺序相同。

需要注意的是,如果对象的属性值是一个对象,那么 Object.values() 方法返回的数组将包含该对象的引用。

Object.entries()

Object.entries() 方法和 Object.values() 方法非常相似,它也接受一个对象作为参数。不同的是,它返回的是一个数组,每个元素都是一个键值对的数组,包含对象属性的名称和对应的属性值。

同样地,如果对象的属性值是一个对象,那么 Object.entries() 方法返回的数组将包含该对象的引用。

区别

两个方法的区别在于返回值的类型。Object.values() 返回值是对象属性值的数组,而 Object.entries() 返回值是多个键值对的数组。

我们可以通过下面的代码演示它们的区别:

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

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

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

指导意义

Object.values() 和 Object.entries() 这两个方法对于 JavaScript 开发者来说是非常有用的工具。我们可以根据对象的属性值或属性名来处理对象,而且返回值的数据结构也更方便操作。

我们可以在很多场景下使用这两个方法,比如对象的遍历、对象属性的过滤、对象属性的排序等等。

下面的示例演示了如何利用 Object.entries() 方法对对象属性进行排序:

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

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

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

在这个例子中,我们利用了 Array.prototype.sort() 方法对对象属性进行排序。注意,我们在 sort() 方法中使用了 a[1] 和 b[1],它们分别表示当前比较的两个对象的属性值。这个排序逻辑可以根据程序需要进行更改。

总结

Object.values() 和 Object.entries() 方法是 ECMAScript 2017 中引入的两个新方法,它们可以让我们更方便地操作对象。Object.values() 返回对象属性值的数组,而 Object.entries() 返回多个键值对的数组。

我们可以使用这两个方法完成很多操作,比如对象属性的遍历、过滤、排序等等。同时,我们也可以将它们与其他 JavaScript 方法和语言特性一起使用,发挥更大的作用。

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

纠错
反馈