在 JavaScript 的漫长历史中,对象是一种非常重要的数据类型。对象可以存储和操作各种类型的数据,并提供了一些非常有用的方法和属性。在 ES6 中,我们看到了一些新的对象方法和语法,比如 Object.assign 和对象解构。在 ES9 中,我们又迎来了一种新的对象方法,它就是 Object.fromEntries。
Object.fromEntries 的定义
Object.fromEntries 是 ES9 中新增的一个静态方法,它可以将一个键值对的数组转换为一个对象。这个数组可以是由 Object.entries 生成的,也可以是自己手动构造的。该方法的语法如下:
Object.fromEntries(iterable)
其中,iterable 是一个可迭代对象,它应该是一个由键值对组成的数组或其他可迭代的对象。每个键值对应该是一个长度为 2 的数组,第一个元素是属性名,第二个元素是属性值。
Object.fromEntries 的用途
Object.fromEntries 可以用来将一个键值对的数组转换为一个对象。这在很多场景下都非常有用,比如将 URLSearchParams 对象转换为一个对象,将 FormData 对象转换为一个对象等等。
下面我们来看一个具体的例子,假设我们有一个由键值对组成的数组,我们想将它们转换为一个对象:
// javascriptcn.com 代码示例 const arr = [ ['name', '张三'], ['age', 18], ['gender', '男'] ]; const obj = Object.fromEntries(arr); console.log(obj); // {name: "张三", age: 18, gender: "男"}
Object.fromEntries 的兼容性
Object.fromEntries 是 ES9 中新增的方法,目前大部分浏览器已经支持了该方法。但是,为了保证代码的兼容性,我们可以使用 polyfill 来实现该方法。
if (!Object.fromEntries) { Object.fromEntries = function (iterable) { return [...iterable].reduce((obj, [key, val]) => { obj[key] = val; return obj; }, {}); }; }
总结
Object.fromEntries 是 ES9 中新增的一个静态方法,它可以将一个键值对的数组转换为一个对象。该方法在很多场景下都非常有用,比如将 URLSearchParams 对象转换为一个对象,将 FormData 对象转换为一个对象等等。虽然该方法目前大部分浏览器已经支持了,但为了保证代码的兼容性,我们可以使用 polyfill 来实现该方法。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65868942d2f5e1655d0f8f44