当前位置:首页 > JavaScript

js实现字典表

2026-03-15 17:58:25JavaScript

字典表的基本实现

在JavaScript中,字典表通常通过对象(Object)或Map数据结构实现。对象是键值对的集合,键为字符串类型;Map的键可以是任意类型,且保持插入顺序。

使用对象实现字典表:

const dictionary = {
  key1: 'value1',
  key2: 'value2'
};
// 访问
console.log(dictionary.key1); // 输出: value1
// 添加
dictionary.key3 = 'value3';
// 删除
delete dictionary.key2;

使用Map实现字典表:

const map = new Map();
// 添加
map.set('key1', 'value1');
map.set(123, '数字键'); // 键可以是任意类型
// 访问
console.log(map.get('key1')); // 输出: value1
// 删除
map.delete(123);

字典表的常见操作

遍历字典表(对象):

const dict = {a: 1, b: 2};
// for...in循环
for (const key in dict) {
  console.log(key, dict[key]);
}
// Object.keys()
Object.keys(dict).forEach(key => {
  console.log(key, dict[key]);
});

遍历字典表(Map):

const map = new Map([['a', 1], ['b', 2]]);
// for...of循环
for (const [key, value] of map) {
  console.log(key, value);
}
// forEach方法
map.forEach((value, key) => {
  console.log(key, value);
});

字典表的高级用法

使用对象作为字典表时,需要注意原型链可能带来的问题。可以使用Object.create(null)创建无原型的对象:

const safeDict = Object.create(null);
safeDict.key = 'value';
// 不会意外访问到原型属性
console.log(safeDict.toString); // 输出: undefined

Map提供更多实用方法:

const map = new Map();
map.set('a', 1).set('b', 2);
// 检查键是否存在
console.log(map.has('a')); // true
// 获取大小
console.log(map.size); // 2
// 清空
map.clear();

性能比较

对于大量数据的字典操作,Map通常比对象有更好的性能:

js实现字典表

  • Map的键可以是任意类型,对象只能是字符串或Symbol
  • Map直接维护大小,无需像对象需要计算
  • Map在频繁增删键值对时性能更好
  • Map保持插入顺序,对象不保证属性顺序
// 性能测试示例
const obj = {}, map = new Map();
let n = 1000000;

console.time('Object');
for (let i = 0; i < n; i++) {
  obj[i] = i;
}
console.timeEnd('Object');

console.time('Map');
for (let i = 0; i < n; i++) {
  map.set(i, i);
}
console.timeEnd('Map');

标签: 字典js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…

实现图片旋转js

实现图片旋转js

使用CSS transform属性旋转图片 通过CSS的transform属性可以轻松实现图片旋转。以下是一个简单的示例代码: const image = document.getElement…