介绍
ECMAScript 2019 中新增了一个 Object.fromEntries() 方法,该方法可以将一个由键值对组成的数组转换为一个对象。这个方法可以方便地将数组转换为对象,也可以用于将 Map 转换为对象。
语法
Object.fromEntries(iterable)
参数
- iterable:一个可迭代对象,其元素是键值对数组。
返回值
一个新的对象,其属性由 iterable 中的键值对组成。
示例
将数组转换为对象
const arr = [['name', 'Alice'], ['age', 20], ['gender', 'female']]; const obj = Object.fromEntries(arr); console.log(obj); // {name: "Alice", age: 20, gender: "female"}
将 Map 转换为对象
const map = new Map(); map.set('name', 'Bob'); map.set('age', 25); map.set('gender', 'male'); const obj = Object.fromEntries(map); console.log(obj); // {name: "Bob", age: 25, gender: "male"}
与 Object.entries() 方法结合使用
const obj = {name: 'Charlie', age: 30, gender: 'male'}; const arr = Object.entries(obj); const newObj = Object.fromEntries(arr); console.log(newObj); // {name: "Charlie", age: 30, gender: "male"}
注意事项
- 如果 iterable 中有重复的键,则后面的键值对会覆盖前面的键值对。
- 如果 iterable 中的元素不是键值对数组,则会抛出 TypeError 异常。
总结
Object.fromEntries() 方法可以方便地将数组或 Map 转换为对象,使用简单,但需要注意重复键的问题。在实际开发中,可以结合 Object.entries() 方法使用,将对象转换为数组,再进行操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c426e9add4f0e0ffe97132