ES9 的 Object.fromEntries:如何将键值对转换成对象

在 JavaScript 中,我们经常需要将一组键值对转换为对象。在 ES9 中,新增了 Object.fromEntries() 方法,可以方便地将键值对转换为对象。

什么是 Object.fromEntries() 方法

Object.fromEntries() 方法是 ES9 新增的方法,它接收一个包含键值对的可迭代对象,例如数组或 Map 对象,返回一个由这些键值对组成的对象。

Object.fromEntries() 方法的语法

Object.fromEntries() 方法的语法如下:

其中,iterable 表示一个可迭代对象,例如数组或 Map 对象。

Object.fromEntries() 方法的使用

我们可以使用 Object.fromEntries() 方法将一个数组转换为对象,示例如下:

const arr = [['name', '张三'], ['age', 18], ['gender', '男']];
const obj = Object.fromEntries(arr);
console.log(obj); // { name: '张三', age: 18, gender: '男' }

上述代码中,我们将一个包含三个数组的数组 arr 转换为对象 obj,并通过 console.log() 方法输出了 obj 的值。

我们也可以使用 Object.fromEntries() 方法将一个 Map 对象转换为对象,示例如下:

const map = new Map([['name', '张三'], ['age', 18], ['gender', '男']]);
const obj = Object.fromEntries(map);
console.log(obj); // { name: '张三', age: 18, gender: '男' }

上述代码中,我们将一个 Map 对象 map 转换为对象 obj,并通过 console.log() 方法输出了 obj 的值。

Object.fromEntries() 方法的注意事项

需要注意的是,Object.fromEntries() 方法的参数必须是一个可迭代对象,例如数组或 Map 对象。如果参数不是可迭代对象,会抛出 TypeError 错误。

此外,如果参数中有重复的键名,后面的键值会覆盖前面的键值。

Object.fromEntries() 方法的兼容性

Object.fromEntries() 方法是 ES9 新增的方法,因此在一些旧版的浏览器中可能不支持该方法。如果需要在旧版浏览器中使用该方法,可以使用 polyfill 进行兼容。

总结

Object.fromEntries() 方法是 ES9 新增的方法,可以方便地将一个包含键值对的可迭代对象转换为对象。在使用该方法时,需要注意参数必须是一个可迭代对象,如果参数中有重复的键名,后面的键值会覆盖前面的键值。如果需要在旧版浏览器中使用该方法,可以使用 polyfill 进行兼容。

参考资料

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65c0d15aadd4f0e0fface48c