ES8 中新增加的方法 Object.values() 与 Object.entries() 的使用方法

阅读时长 5 分钟读完

在 JavaScript 中,Object 是一种非常重要的数据类型,它可以用来表示一个对象,对象中包含了一些属性和方法。在 ES8 中,Object 新增加了两个方法:Object.values() 和 Object.entries(),这两个方法可以帮助我们更方便地操作对象。

Object.values()

Object.values() 方法可以返回一个对象中所有属性的值,这些值被存储在一个数组中,并且数组中的顺序与对象中属性的顺序相同。下面是一个使用 Object.values() 方法的示例:

在这个示例中,我们定义了一个对象 obj,它包含了三个属性 a、b 和 c,然后我们使用 Object.values() 方法获取了 obj 中所有属性的值,并将这些值存储在了一个数组 values 中。最后,我们使用 console.log() 方法打印出了这个数组。

需要注意的是,Object.values() 方法只会返回对象自身的可枚举属性的值,不会返回继承自原型链上的属性的值。

Object.entries()

Object.entries() 方法可以返回一个对象中所有属性的键值对,这些键值对被存储在一个数组中,并且数组中的顺序与对象中属性的顺序相同。下面是一个使用 Object.entries() 方法的示例:

在这个示例中,我们定义了一个对象 obj,它包含了三个属性 a、b 和 c,然后我们使用 Object.entries() 方法获取了 obj 中所有属性的键值对,并将这些键值对存储在了一个数组 entries 中。最后,我们使用 console.log() 方法打印出了这个数组。

需要注意的是,Object.entries() 方法只会返回对象自身的可枚举属性的键值对,不会返回继承自原型链上的属性的键值对。

使用场景

Object.values() 和 Object.entries() 方法可以帮助我们更方便地操作对象,常见的使用场景包括:

  • 遍历对象的属性值或键值对
  • 将对象的属性值或键值对转换成数组
  • 过滤对象的属性值或键值对

下面是一些使用场景的示例代码:

遍历对象的属性值或键值对

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

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

在这个示例中,我们使用 for...of 循环遍历了 obj 对象的属性值和键值对,并使用 console.log() 方法打印出了这些值。

将对象的属性值或键值对转换成数组

在这个示例中,我们使用 Object.values() 方法和 Object.entries() 方法将 obj 对象的属性值和键值对分别转换成了数组,并使用 console.log() 方法打印出了这些数组。

过滤对象的属性值或键值对

在这个示例中,我们使用 Object.values() 方法和 Object.entries() 方法获取了 obj 对象的属性值和键值对,并使用 filter() 方法过滤了其中的一部分值或键值对,并使用 console.log() 方法打印出了这些值或键值对。

总结

Object.values() 和 Object.entries() 方法是 ES8 中新增加的两个方法,它们可以帮助我们更方便地操作对象。Object.values() 方法可以返回一个对象中所有属性的值,Object.entries() 方法可以返回一个对象中所有属性的键值对。这两个方法常见的使用场景包括遍历对象的属性值或键值对、将对象的属性值或键值对转换成数组、过滤对象的属性值或键值对等。

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

纠错
反馈