前言
ES12 引入了 Object.fromEntries
方法,该方法可以将键值对数组转换成对象。这个新的方法在处理一些对象的场景中非常实用,下面就来探究一下它的实战应用。
Object.fromEntries
首先,让我们来看一下 Object.fromEntries
的定义:
----------------------------
这个方法的作用是将一个键值对数组转换成一个对象。iterable
是一个可迭代的对象,例如数组和映射( Map
)。每一个元素必须是一个 key-value 数组,其中第一个元素是键名,第二个元素是键值。
需要注意的是,在使用此方法时特别需要注意键名必须是字符串。否则将会抛出异常。
实战应用
1. 将映射对象转化为普通对象
映射( Map
)对象在某些场合下可能难以处理,例如:作为 API 的返回结果,不利于后续的处理。这时可以使用 Object.fromEntries
来将映射对象转换成普通对象。
----- --- - --- ----- ------- ------- ------- --- --- ----- --- - ------------------------ ----------------- -- ----- ------ ---- ---
2. 将表单数据序列化为对象
在表单处理中,常常需要将表单数据序列化成对象。这时候就可以使用 FormData
和 Object.fromEntries
来实现了。
----- ---- - ---------------------------------- ----- -------- - --- --------------- ----- ------- - --------------------------------------- --------------------- -- - ----- ------ ---- --- ------ -------------
3. 将对象转换为 URL 参数
有时候需要将一个对象转换为 URL 的查询参数。这时就可以使用 Object.entries
和数组的 map
方法来实现多个键值对的拼接。
----- ------ - - ----- ------ ---- ----- ------ ------------ -- ----- ----------- - --- --------------------------------------------------- ------------------------- -- ----------------------------------
注意事项
需要特别注意的是,如果你传递的 iterable
里的元素是不符合规则的,例如键名不是字符串,或者不是一个数组, Object.fromEntries
将会抛出一个异常。
----- --- - -------- --- ------- ------ -------- ------- ------- ------------------------ -- ---------- ----- -- --- --------
总结
Object.fromEntries
是一个非常实用的方法,可以用于转换映射对象,处理表单数据和将对象转换为 URL 参数等场景。但需要注意传入的数组中必须是符合规范的 key/value 数组,其中必须要有一个字符串键名。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6532ab5a7d4982a6eb583a4d