在 ES8 中,我们得到了一个非常实用的新函数 Object.entries()
,它可以将一个对象转换为一个二维数组,其中每个键值对都被转换为一个包含两个元素的数组。ES10 中,我们又得到了一个新函数 Object.fromEntries()
,它可以将一个二维数组转换为一个普通的对象,并且与 Object.entries()
是互逆的。
Object.fromEntries() 的用法
Object.fromEntries()
函数接收一个二维数组,例如:
--- ----- - --- ------ ----------------- --------- ---------------- ---- --- ----- - -------------------------- ------------------- -- ------ -------- ---- ---
上面代码中,myMap
是一个 Map 对象,它包含了两个键值对。然后,我们使用 Object.fromEntries(myMap)
将它转换为一个普通对象 myObj
,并打印出来获取结果。可以发现,结果与原来的 Map 对象相比,除了类型不同外,是完全一样的。同时,我们也可以直接使用一个普通的二维数组作为参数,例如:
--- ----- - --------- ------- ------- ----- --- ----- - -------------------------- ------------------- -- ------ ------ ---- ---
在这个示例中,我们使用了一个二维数组 myArr
,用来表示包含两个成员的键值对。然后,我们用 Object.fromEntries(myArr)
将它转换为一个普通的对象 myObj
,并输出结果。同样,可以看到最终结果和我们期望的一致。
Object.fromEntries() 的指导意义
Object.fromEntries()
函数无疑是在处理一些键值对相关的操作中相当实用的。例如,在我们需要将一个 Map 对象或者其他一些格式的数据序列化为纯粹的键值对数据时,可以选择使用 Object.fromEntries()
函数。同时,在处理某些 API 的返回数据时,如果数据格式为二维数组,则直接将其转换为普通数据对象可以更加方便地进行后续的处理。
示例代码
-- -- ---- --- ----------- --- ----- - --- ------ ----------------- --------- ---------------- ---- --- ----- - -------------------------- ------------------- -- ------ -------- ---- --- -- -- ----------------- --- ----- - --------- ------- ------- ----- --- ----- - -------------------------- ------------------- -- ------ ------ ---- --- -- -- --- --- ----- --- ----- --- ----- - --- ------ ----------------- --------- ---------------- ---- --- ------- - --- ------------------------------------------- -------------------------------- -- -----------------
在上面的示例代码中,我们演示了 Object.fromEntries()
函数的一些常见用法。其中,示例 1 和示例 2 分别演示了使用 Map 对象和二维数组转换为一个普通对象的用法。而示例 3 则演示了如何将 Map 对象转换为一个 URL 查询字符串,这需要借助 URLSearchParams
类。
总结
Object.fromEntries()
函数是 ES10 中新增的一个函数,它可以将一个二维数组转换为一个普通的键值对对象,并且与 Object.entries()
是互逆的。在日常的开发中,我们可以使用它来处理一些键值对相关的操作,例如,将 Map 对象转换为纯粹的键值对数据,或者将二维数组转换为更加方便的数据格式。同时,为了更好地展示常见用法,我们也提供了一些示例代码,供读者参考。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/644fb3ea980a9b385b90cac2