在 ES11 中,新增了一个 Object.fromEntries()
方法,它可以将一个由键值对组成的数组转化为一个对象。这个方法的出现,可以方便我们将数组转化为对象,同时也可以用于将 Map 转化为对象。
语法
Object.fromEntries(iterable)
iterable
:一个可迭代对象,其中每个元素都是一个表示键值对的数组。
示例
下面是一个将数组转化为对象的示例:
const arr = [['name', 'Tom'], ['age', 18], ['gender', 'male']]; const obj = Object.fromEntries(arr); console.log(obj); // {name: "Tom", age: 18, gender: "male"}
可以看到,Object.fromEntries()
方法将一个由键值对组成的数组转化为了一个对象。
下面是一个将 Map 转化为对象的示例:
-- -------------------- ---- ------- ----- --- - --- ----- -------- ------- ------- ---- ---------- ------- --- ----- --- - ------------------------ ----------------- -- ------ ------ ---- --- ------- -------
可以看到,Object.fromEntries()
方法同样可以将 Map 转化为对象。
应用场景
Object.fromEntries()
方法可以方便地将数组或 Map 转化为对象,这在实际开发中非常有用。例如,我们可以使用它来将 URL 参数转化为对象:
const url = 'https://example.com/?name=Tom&age=18&gender=male'; const params = new URLSearchParams(url.search); const obj = Object.fromEntries(params); console.log(obj); // {name: "Tom", age: "18", gender: "male"}
可以看到,Object.fromEntries()
方法非常方便地将 URL 参数转化为了一个对象。
注意事项
Object.fromEntries()
方法不会对原数组或 Map 进行修改,它会返回一个新的对象。- 如果数组中有重复的键名,则后面的值会覆盖前面的值。
- 如果数组中有非数组元素,则会抛出 TypeError。
总结
Object.fromEntries()
方法是 ES11 中新增的一个非常实用的方法,它可以方便地将数组或 Map 转化为对象。在实际开发中,我们可以使用它来处理各种数据结构,使开发变得更加便捷。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65ffc811d10417a222b05f9f