2023前端面试题-前端Js面试题-对 Object 和 Map 的理解及相互转换

260 阅读1分钟

Object 和 Map 都是用来存储键值对的数据结构。

二者的区别如下:

1、Object 的键只能是字符串或者 Symbol 类型,而 Map 的键可以是任意类型,包括函数、对象、基本类型等。

2、Object 的大小只能手动计算,而 Map 的大小可以通过 size 属性直接获取。

3、Object 的原型链上有一些默认属性和方法,而 Map 只是一个纯粹的映射关系,没有额外的属性和方法。

4、Map 是 ES6 新增的数据类型,而 Object 则是 JavaScript 的基础数据类型之一。

一、Object 转换为 Map:

const obj = { a: 1, b: 2 };
const map = new Map(Object.entries(obj));

其中,Object.entries() 方法返回一个包含所有对象自身可枚举属性的键值对数组。这个数组可以直接作为 Map 的参数传入。

二、Map 转换为 Object:

const map = new Map([['a', 1], ['b', 2]]);
const obj = Object.fromEntries(map);

其中,Object.fromEntries() 方法将一个键值对数组转换为一个对象。在这个例子中,我们将 Map 转换为键值对数组,再使用 Object.fromEntries() 方法将其转换为对象。

更多前端面试题请看:

存图,扫

daan-s.png