在 ES12 中,新增了一个对象方法 Object.fromEntries()
,它可以将一个键值对数组转换成一个对象。
语法
Object.fromEntries(iterable)
iterable
:一个可迭代对象,它的元素是由键值对组成的数组。
简单示例
----- ------- - --------- ------ ------- ----- ----- --- - ---------------------------- ----------------- -- - ----- ----- ---- -- -
深入理解
Object.fromEntries()
方法主要用于将一个键值对数组转换成一个对象。在实际开发中,我们经常会遇到这种情况,比如后端返回的数据格式为键值对数组,而我们需要将其转换成对象方便操作。
Object.fromEntries()
方法的实现原理非常简单,它实际上是通过遍历数组中的每一个键值对,然后将其添加到一个新的对象中。
------------------ - -------- ---------- - --- --- - --- --- ---- ----- ------ -- --------- - -------- - ------ - ------ ---- --
需要注意的是,Object.fromEntries()
方法会忽略掉不是数组的元素,所以在使用时需要确保每个元素都是由键值对组成的数组。
使用场景
除了将键值对数组转换成对象之外,Object.fromEntries()
方法还有很多其他的使用场景。下面介绍几个常见的场景。
将 Map 转换成对象
在 ES6 中,新增了一个数据结构 Map
,它可以存储任意类型的键和值,并且支持迭代器。如果我们需要将一个 Map 转换成对象,可以使用 Object.fromEntries()
方法。
----- --- - --- ------------- ------ ------- ------ ----- --- - ------------------------ ----------------- -- - ----- ----- ---- -- -
将 URLSearchParams 转换成对象
在前端开发中,我们经常需要对 URL 进行解析和操作。在 ES6 中,新增了一个 URLSearchParams 对象,它可以方便地对 URL 参数进行解析和操作。如果我们需要将一个 URLSearchParams 对象转换成对象,可以使用 Object.fromEntries()
方法。
----- ------------ - --- ---------------------------------- ----- --- - --------------------------------- ----------------- -- - ----- ----- ---- ---- -
需要注意的是,如果 URL 参数中存在相同的键,Object.fromEntries()
方法只会取最后一个键值对的值。
将数组转换成对象
有时候,我们需要将一个数组转换成一个对象,其中数组中的每个元素都是一个对象,且对象中包含了键和值。这时候,我们可以使用 Object.fromEntries()
方法。
----- --- - - - ---- ------- ------ ---- -- - ---- ------ ------ -- -- -- ----- --- - ------------------------------- -- ---------- -------------- ----------------- -- - ----- ----- ---- -- -
总结
Object.fromEntries()
方法是 ES12 中新增的一个对象方法,它可以将一个键值对数组转换成一个对象。在实际开发中,它有很多使用场景,比如将 Map 转换成对象、将 URLSearchParams 转换成对象、将数组转换成对象等等。需要注意的是,在使用时需要确保每个元素都是由键值对组成的数组。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/656d4448d2f5e1655d591671