当前位置:首页 > JavaScript

js实现字典

2026-02-01 17:45:47JavaScript

字典的实现方式

在 JavaScript 中,字典(键值对集合)可以通过多种方式实现,以下是常见的几种方法:

使用普通对象

普通对象是 JavaScript 中最简单的字典实现方式:

const dictionary = {
  key1: 'value1',
  key2: 'value2'
};

// 添加元素
dictionary.key3 = 'value3';

// 访问元素
console.log(dictionary.key1); // 输出: value1

// 删除元素
delete dictionary.key2;

使用 Map 对象

ES6 引入的 Map 对象提供了更完善的字典功能:

const dictionary = new Map();

// 添加元素
dictionary.set('key1', 'value1');
dictionary.set('key2', 'value2');

// 访问元素
console.log(dictionary.get('key1')); // 输出: value1

// 检查键是否存在
console.log(dictionary.has('key1')); // 输出: true

// 删除元素
dictionary.delete('key2');

// 获取大小
console.log(dictionary.size); // 输出: 1

使用 WeakMap

WeakMap 是 Map 的变体,键必须是对象且不可枚举:

const dictionary = new WeakMap();
const keyObj = {};

dictionary.set(keyObj, 'value1');
console.log(dictionary.get(keyObj)); // 输出: value1

字典操作常用方法

遍历字典

对于对象:

const obj = {a: 1, b: 2};

// 遍历键
for (const key in obj) {
  console.log(key, obj[key]);
}

// ES6 方式
Object.keys(obj).forEach(key => {
  console.log(key, obj[key]);
});

对于 Map:

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

// 遍历键值对
map.forEach((value, key) => {
  console.log(key, value);
});

// 使用迭代器
for (const [key, value] of map) {
  console.log(key, value);
}

合并字典

对象合并:

const obj1 = {a: 1};
const obj2 = {b: 2};
const merged = {...obj1, ...obj2}; // {a: 1, b: 2}

Map 合并:

const map1 = new Map([['a', 1]]);
const map2 = new Map([['b', 2]]);
const merged = new Map([...map1, ...map2]);

性能考虑

  • 对象适合简单的键值存储,键只能是字符串或 Symbol
  • Map 支持任意类型的键,提供更多操作方法,维护插入顺序
  • WeakMap 不会阻止键对象被垃圾回收,适合特殊场景

实际应用示例

实现一个简单的字典类:

js实现字典

class Dictionary {
  constructor() {
    this.items = {};
  }

  set(key, value) {
    this.items[key] = value;
  }

  get(key) {
    return this.items[key];
  }

  delete(key) {
    if (this.has(key)) {
      delete this.items[key];
      return true;
    }
    return false;
  }

  has(key) {
    return key in this.items;
  }

  size() {
    return Object.keys(this.items).length;
  }

  clear() {
    this.items = {};
  }
}

这些方法涵盖了 JavaScript 中实现字典的主要方式,根据具体需求选择合适的实现方案。

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

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…