详解 ES8 中新增的 Object.fromEntries() 方法

阅读时长 4 分钟读完

在 ES8 中,新增了一个非常实用的方法:Object.fromEntries()。这个方法可以将一个二维数组转化为一个对象,这给你极大的便利性,例如将一个 Map 转化为一个对象或 JSON 对象转化为一个对象。

语法

Object.fromEntries(iterable)

其中 iterable 需要必须是一个二维数组。数组中每个元素都是一个 key-value 对象,例如:

示例

用途

将 Map 转化为对象

在 JavaScript 中,Map 对象(ES6 新增)也是一种 key-value 映射的数据结构,但是和对象不同的是,Map 对象的 key 可以是任意类型,包括对象和函数。如果我们想把 Map 对象转化为对象,一般的方法是遍历 Map,再一个一个的复制到对象中,而现在我们可以通过 Object.fromEntries() 方法很轻松地实现。

将 JSON 转化为对象

当我们接收到一个 JSON 格式的数据时,我们将它解析为一个对象,一般的方法是使用 JSON.parse() 方法,而这个方法返回的是一个对象。但是如果我们取到的数据是一个数组,我们需要遍历数组,一个一个的解析为对象,或者我们可以用 ES8 标准中的 Object.fromEntries() 方法快速实现。

兼容性

由于 Object.fromEntries() 是 ES8 中新增的方法,所以在一些旧浏览器中可能不支持。如果你需要兼容旧浏览器,你可以写一个 polyfill 插件使代码兼容旧版本的浏览器。

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

总结

Object.fromEntries() 方法是 ES8 新增的方法,非常实用和方便。可以用于将 Map 转化为对象、JSON 对象转化为对象等,但需要注意兼容性问题。

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

纠错
反馈