JavaScript中Object与Map的相互转换详解
作者:键盘侠时间:2026-10-30 20:43:39浏览:451
本文介绍JavaScript中Object与Map两种数据结构的区别及相互转换方法。重点解析ES6新增的Object.entries()和Object.fromEntries()方法,通过示例演示如何利用这两个API实现对象与映射表之间的无缝转换,帮助开发者根据场景选择合适的数据结构。
简单区分Map和Object
Map是ES6引入的一种数据类型,其主要特点是允许使用任意类型的值作为属性键(key)。
而Object的属性键通常仅限于字符串(或Symbol),这一点在实际测试中可以得到验证。
相关代码示例

图片说明

创建一个Map类型的实例
new Map([
[key, value],
[key1, value1]
])简要介绍以下两个关键方法
- Object.entries()方法返回一个包含参数对象自身所有可遍历(enumerable)属性键值对的二维数组,不包括继承的属性。
- Object.fromEntries()则是Object.entries()的逆操作,用于将键值对数组转换为对象。
Object类型转换为Map类型
此过程主要利用Object.entries()的特性,该函数返回一个二维数组,其中每个子数组的第一个元素为键,第二个元素为值。
const obj = {
a: '我是obj.a',
b: '我是obj.b',
c: '我是obj.c',
}
console.log(obj)
const map = new Map(Object.entries(obj))
console.log(map)
console.log(map.get('a'), '我是map 属性名')
console.log(map.get('b'), '我是map 属性名')
Map类型转换为Object类型
const arr = [1, 2, 3],
obj = { a: '1', b: 2 },
number = 22
const map = new Map()
map.set(arr, '我是map的第1个值,我是数组')
map.set(obj, '我是map的第2个值,我是对象')
map.set(number, '我是map的第3个值, 我是简单数据类型')
const newObj = Object.fromEntries(map.entries())
console.log(newObj, '我是新对象')
console.log('新对象类型', typeof newObj)
总结
至此,关于JavaScript中Object与Map之间转换方法的介绍已完成。如需了解更多JS中Object与Map转换的相关内容,建议查阅本站过往文章或继续浏览后续文章,感谢大家的支持!
作者最新文章
免登录快速分享代码:适合面试协作的轻量级JS在线运行工具推荐
2026-11-05 14:45:59
JS空字符串和纯空格转浮点数的结果是什么
2026-11-05 11:04:42
JS在线格式化缩进混乱怎么办?配置项调整技巧
2026-11-04 23:27:25
JS怎么获取秒级时间戳
2026-11-03 21:45:29
JS时间戳怎么从毫秒转换为秒
2026-11-03 20:04:14
