ES8 中引入的 Object.values() 和 Object.entries() 的使用教程

阅读时长 3 分钟读完

在 ES8 中,JavaScript 引入了两个非常实用的方法,分别是 Object.values()Object.entries()。它们可以让我们更方便地获取对象的属性值和键值对。本文将详细介绍它们的具体用法及注意事项。

Object.values()

Object.values() 方法返回一个数组,数组中包含了对象自身的所有属性的值,其值的顺序与使用 for...in 循环遍历对象时返回的属性值的顺序相同。如果对象属性有 Symbol 类型的值,Object.values() 会忽略这些值。

可以看出,Object.values() 方法非常方便,我们可以不用遍历整个对象来获取所有属性的值。

Object.entries()

Object.entries() 方法也返回一个数组,其中包含了对象自身的所有属性的键值对。数组中的每个元素都是一个长度为 2 的数组,第一个元素表示属性名称,第二个元素表示属性值。

可以看出,Object.entries() 方法非常方便,我们可以不用遍历整个对象来获取所有属性的键值对。

注意事项

虽然 Object.values()Object.entries() 非常实用,但在使用时需要注意以下几点:

  • 仅支持现代浏览器:Object.values()Object.entries() 仅在现代浏览器上得到支持,如果你需要兼容旧版浏览器,可能需要使用第三方库或手写相应的代码。
  • 遍历顺序与 for...in 相同:使用 Object.values()Object.entries() 方法返回的结果与使用 for...in 循环遍历对象时返回的结果的顺序相同,因此在需要保证顺序的情况下可以使用这些方法。
  • 忽略 Symbol 类型的属性值:这两个方法会忽略对象属性值为 Symbol 类型的属性。

示例代码

下面是一个简单的示例代码,展示如何使用 Object.values()Object.entries() 方法:

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

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

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

总结:ES8 中的 Object.values() 和 Object.entries() 方法可以大大简化获取对象属性值及属性的键值对的操作,这两个方法非常实用,但在使用时要注意一些细节问题。

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

纠错
反馈