在 ECMAScript 2018 中,一个新的方法 Object.fromEntries 被引入了。这个方法可以将一个键值对的数组转换成一个对象。这个方法在处理一些特定的数据结构时非常有用,比如将 Map 转换成对象。
使用 Object.fromEntries
Object.fromEntries 方法接受一个键值对的数组,返回一个由这些键值对构成的对象。下面是一个简单的例子:
const entries = [['name', 'John'], ['age', 30]]; const obj = Object.fromEntries(entries); console.log(obj); // {name: "John", age: 30}
这里,我们传入了一个包含两个键值对的数组,然后使用 Object.fromEntries 方法将其转换成了一个对象。
将 Map 转换成对象
Object.fromEntries 最常用的场景之一是将 Map 转换成对象。Map 是一种可以存储任意类型值的键值对集合,可以使用 Object.fromEntries 方法将其转换成一个对象。
const map = new Map(); map.set('name', 'John'); map.set('age', 30); const obj = Object.fromEntries(map); console.log(obj); // {name: "John", age: 30}
这里,我们首先创建了一个 Map,然后使用 set 方法向其中添加了两个键值对。接着,我们使用 Object.fromEntries 方法将 Map 转换成了一个对象。
与 Object.entries 方法配合使用
Object.fromEntries 方法与 Object.entries 方法配合使用可以很方便地将一个对象转换成另一个对象。
const obj1 = {name: 'John', age: 30}; const obj2 = Object.fromEntries(Object.entries(obj1)); console.log(obj2); // {name: "John", age: 30}
这里,我们首先创建了一个对象 obj1,然后使用 Object.entries 方法将其转换成了一个键值对的数组。接着,我们使用 Object.fromEntries 方法将这个数组转换成了一个对象 obj2。
总结
Object.fromEntries 方法是 ECMAScript 2018 中引入的一个新方法,可以将一个键值对的数组转换成一个对象。这个方法在处理一些特定的数据结构时非常有用,比如将 Map 转换成对象。同时,Object.fromEntries 方法与 Object.entries 方法配合使用可以很方便地将一个对象转换成另一个对象。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6613bb80d10417a222437821