在 ES10 中,新增了一个非常实用的函数 Object.fromEntries()
,它可以将一个由键值对组成的数组转换成一个对象。这个函数可以方便地将一些数据结构转换成对象,例如将 Map 转换成对象或将 URLSearchParams 转换成对象等等。
使用方法
Object.fromEntries()
函数接受一个由键值对组成的数组作为参数。数组中每个元素都是一个长度为 2 的数组,第一个元素是键,第二个元素是值。函数返回一个由这些键值对组成的对象。
const arr = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(arr); console.log(obj); // {a: 1, b: 2, c: 3}
实用示例
Map 转换成对象
Object.fromEntries()
函数可以将 Map 转换成对象。Map 是一种键值对的集合,它的键可以是任意类型的值,而对象的键只能是字符串或 Symbol 类型的值。
const map = new Map([['a', 1], ['b', 2], ['c', 3]]); const obj = Object.fromEntries(map); console.log(obj); // {a: 1, b: 2, c: 3}
URLSearchParams 转换成对象
URLSearchParams 是一个 URL 查询参数的集合,它可以方便地解析和构建 URL 查询参数。Object.fromEntries()
函数可以将 URLSearchParams 转换成对象。
const params = new URLSearchParams('a=1&b=2&c=3'); const obj = Object.fromEntries(params); console.log(obj); // {a: "1", b: "2", c: "3"}
对象转换成 Map
Object.entries()
函数可以将一个对象转换成一个由键值对组成的数组。结合 Object.fromEntries()
函数,可以将对象转换成 Map。
const obj = {a: 1, b: 2, c: 3}; const map = new Map(Object.entries(obj)); console.log(map); // Map(3) {"a" => 1, "b" => 2, "c" => 3}
注意事项
Object.fromEntries()
函数是 ES10 新增的函数,如果需要在旧版本的 JavaScript 中使用,可以使用 polyfill 或者手动实现这个函数。同时,由于这个函数的参数是一个由键值对组成的数组,如果数组中有重复的键名,后面的键值会覆盖前面的键值,因此需要注意数组中每个元素的键名是否唯一。
总结
Object.fromEntries()
函数是一个非常实用的函数,可以方便地将由键值对组成的数组转换成对象。它可以用于将 Map 转换成对象、将 URLSearchParams 转换成对象,以及将对象转换成 Map 等等。在实际开发中,可以根据具体的需求灵活使用这个函数,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bdea4fadd4f0e0ff786236