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和Object

图片说明

简单区分Map和Object

创建一个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

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)

简单区分Map和Object

总结

至此,关于JavaScript中Object与Map之间转换方法的介绍已完成。如需了解更多JS中Object与Map转换的相关内容,建议查阅本站过往文章或继续浏览后续文章,感谢大家的支持!

作者最新文章