在 ES10 中使用 Object.fromEntries 快速将 Map 转为对象
在 JavaScript 编程中,Map 和 Object 是两种常用的数据结构。Map 通常被用作键值对的数据结构,而 Object 则是 JavaScript 中最基本的内置对象。在实际开发中,我们时常需要将 Map 转为 Object 或者将 Object 转为 Map,以方便进行数据处理。
在 ES10 中,我们可以使用 Object.fromEntries() 来快速将 Map 转为 Object。
Object.fromEntries() 的介绍
Object.fromEntries() 是在 ES10 中新增的一个静态方法,它允许将由键值对组成的数组转化成一个对象。
具体来说,Object.fromEntries() 接收一个由键值对组成的数组作为参数,返回一个新的由这些键值对组成的对象。
const entries = [['foo', 'bar'], ['baz', 42]]; const obj = Object.fromEntries(entries); console.log(obj) // Output: { foo: 'bar', baz: 42 }
Map 转 Object 示例
现在,我们来看一个 Map 转 Object 的示例。
-- -------------------- ---- ------- ----- ----- - --- ------ ----------------- --------- ---------------- ---- ------------------- ---------- ----- -------- - ------------------------------------ ---------------------- -- ------- -------------- ------- ----------------
如上述代码所示,我们使用 new 关键字创建了一个名为 myMap 的新 Map 对象,然后将 "name"、"age" 和 "gender" 三个键值对添加到 Map 中。
接下来,我们使用 Map 的 entries() 方法获取一个由键值对组成的数组,并使用 Object.fromEntries() 将其转化为一个新的对象 myObject。最后,我们打印出 myObject,可以看到成功地将 Map 转为了 Object。
注意事项
Object.fromEntries 在 IE 和 Safari 中不被支持,使用之前要确认目标平台是否支持。
转化后的 Object 对象和原本的 Map 对象在使用上有一定区别,如果需要保证类型一致可以使用 Map 对象。
如果遇到 Map 中存在相同的键值对,转化为对象时会忽略后面的键值对(即相同的键值对只会保留第一个)。
总结
Object.fromEntries() 是在 ES10 中新增的一个静态方法,可将由键值对组成的数组快速转化为一个对象。使用 Object.fromEntries() 方法可以方便地将 Map 转为 Object。但需要注意 Object.fromEntries 在 IE 和 Safari 中不被支持,并且转化后的 Object 对象和原本的 Map 对象在使用上可能会有所不同。
在实际开发中,对象和 Map 作为两种常用的数据结构,其优缺点也都有明显的差异。开发者应根据实际需求,灵活应用这两种数据结构。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6497723048841e989447654a