解决也许你不知道的 ES12“Object.fromEntries()” 使用问题

阅读时长 3 分钟读完

ES12 中新增了一个非常实用的方法 Object.fromEntries(),该方法可以将键值对转化为对象。在实际开发中,可能会遇到一些使用问题,本文将为大家详细介绍如何解决这些问题。

Object.fromEntries() 的使用

Object.fromEntries() 方法接受一个由键值对组成的数组,并返回一个由这些键值对组成的对象。示例如下:

可以看到,上述代码将一个数组转化为了一个键值对组成的对象。

解决使用问题

问题一:无法在低版本浏览器中使用

Object.fromEntries() 方法是 ES12 中新增的方法,在低版本浏览器(如 IE)中无法使用。解决方法是可以使用 JavaScript 的高级特性 polyfillpolyfill 实际上是通过在运行时添加方法的方式,将 ES12 中新增的功能添加到低版本浏览器中。示例如下:

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

通过如上代码,即可在低版本浏览器中使用 Object.fromEntries() 方法。

问题二:数组中有重复的键名

如果一个数组中含有重复的键名,只有最后一次出现的键值对会在输出结果中出现。示例如下:

可以看到,最后一次出现的键值对 ['a', 3] 覆盖了之前的 ['a', 1]

解决方法是在调用 Object.fromEntries() 方法之前,先对数组进行处理,将重复的键名合并成一个数组。示例如下:

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

可以看到,通过对数组进行处理后,键名为 a 的键值对的值变成了数组,包含了之前重复出现的两个值。

总结

本文详细介绍了如何解决 Object.fromEntries() 方法的使用问题。首先解决了在低版本浏览器中无法使用的问题,其次,针对重复键名的问题,提供了一种解决方法。建议在使用 Object.fromEntries() 方法的时候,结合本文中的方法进行合理使用。

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

纠错
反馈