当前位置:首页 > JavaScript

map实现js

2026-02-01 00:09:41JavaScript

Map 实现(JavaScript)

在 JavaScript 中,Map 是一种键值对集合,允许任何类型的值(包括对象)作为键,并保留插入顺序。以下是 Map 的基本实现方法及常见操作。

创建 Map

使用 new Map() 构造函数创建一个空 Map,或通过传入一个可迭代对象(如数组)初始化 Map

const map1 = new Map(); // 空 Map
const map2 = new Map([
  ['key1', 'value1'],
  ['key2', 'value2']
]); // 初始化 Map

添加键值对

使用 set(key, value) 方法向 Map 中添加键值对。

map1.set('name', 'Alice');
map1.set(42, 'Answer');
map1.set({ id: 1 }, 'Object Key');

获取值

通过 get(key) 方法根据键获取对应的值。若键不存在,返回 undefined

map实现js

console.log(map1.get('name')); // 输出: 'Alice'
console.log(map1.get(42)); // 输出: 'Answer'

检查键是否存在

使用 has(key) 方法检查 Map 中是否包含指定键。

console.log(map1.has('name')); // 输出: true
console.log(map1.has('unknown')); // 输出: false

删除键值对

通过 delete(key) 方法删除指定键的键值对。返回 true 表示删除成功,false 表示键不存在。

map实现js

map1.delete('name'); // 返回 true
map1.delete('unknown'); // 返回 false

清空 Map

使用 clear() 方法移除所有键值对。

map1.clear(); // Map 变为空

获取 Map 大小

通过 size 属性获取 Map 中键值对的数量。

console.log(map2.size); // 输出: 2

遍历 Map

Map 支持多种遍历方式:

  • keys():返回键的迭代器。
  • values():返回值的迭代器。
  • entries():返回键值对的迭代器(默认迭代行为)。
  • forEach(callback):遍历键值对并执行回调函数。
// 使用 for...of 遍历
for (const [key, value] of map2) {
  console.log(key, value);
}

// 使用 forEach
map2.forEach((value, key) => {
  console.log(key, value);
});

与 Object 的区别

  1. 键的类型Map 的键可以是任意类型(包括对象),而 Object 的键只能是字符串或 Symbol。
  2. 顺序Map 保留插入顺序,Object 的键顺序不固定。
  3. 性能:频繁增删键值对时,Map 性能更优。
  4. 大小Map 直接通过 size 获取,Object 需手动计算。

示例代码

const userMap = new Map();
userMap.set(1, { name: 'Alice', age: 25 });
userMap.set(2, { name: 'Bob', age: 30 });

console.log(userMap.get(1)); // { name: 'Alice', age: 25 }
console.log(userMap.size); // 2

userMap.forEach((user, id) => {
  console.log(`User ${id}: ${user.name}`);
});

通过 Map 可以高效管理键值对数据,尤其适合需要复杂键或频繁操作的场景。

标签: mapjs
分享给朋友:

相关文章

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…