引言
ES12 中增加了新的方法 Object.fromEntries(),这个方法和 Object.entries() 非常相似但又有不同,本文将详细介绍 Object.fromEntries() 和 Object.entries() 的区别及应用。
Object.entries()
Object.entries() 是将一个对象的键值对转换成一个二维数组。例如:
----- --- - --- -- -- --- ----- ------- - -------------------- --------------------- -- ------- ------ --- ----- ---
Object.fromEntries()
Object.fromEntries() 是将一个二维数组转换成一个对象。例如:
----- ------- - ------ --- ----- ---- ----- --- - ---------------------------- ----------------- -- ------- --- -- -- --
区别
Object.fromEntries() 和 Object.entries() 的区别就是 Object.fromEntries() 将二维数组转化成对象,而 Object.entries() 将对象转化成二维数组。
应用
将 map 转为对象
使用 Object.fromEntries() 可以将 map 转化成对象,例如:
----- --- - --- ---------- --- ----- ----- ----- --- - ------------------------ ----------------- -- ------- --- -- -- --
将对象序列化为 URL 查询参数
使用 Object.entries() 和 URLSearchParams 类可以将对象序列化为 URL 查询参数,例如:
----- --- - --- -- -- --- ----- ------ - --- ------------------------------------- ------------------------------- -- ------- ---------
实现 Map 的过滤
使用 Object.entries() 和 Array.prototype.filter() 可以实现 map 的过滤,例如:
----- --- - --- ---------- --- ----- --- ----- ----- ----- -------- - ---------------------------------- --------------------------------------- ------- -- ----- - -- --- ---------------------- -- ------- ------ --- ----- --- ----- ----------- - --- -------------- ------------------------- -- ------- --- - --- -- -- --- -- - -
结论
Object.fromEntries() 和 Object.entries() 在某些特定场景中非常有用,例如将 map 转化为对象、将对象序列化为 URL 查询参数和实现 Map 的过滤。但请注意,在上述场景中使用这两个方法时需要小心,避免出现意想不到的错误。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6704d047d91dce0dc850515f