当前位置:首页 > JavaScript

js字典实现

2026-03-15 11:28:09JavaScript

JavaScript 字典实现方法

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

使用普通对象

const dictionary = {
  key1: 'value1',
  key2: 'value2'
};
dictionary.key3 = 'value3'; // 添加新键值
delete dictionary.key1; // 删除键值

使用 Map 对象

const map = new Map();
map.set('key1', 'value1'); // 添加键值
map.set('key2', 'value2');
map.delete('key1'); // 删除键值
console.log(map.get('key2')); // 获取值

使用 Object.create(null)

js字典实现

const dict = Object.create(null);
dict.key1 = 'value1';
dict.key2 = 'value2';

字典类实现

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

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

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

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

  get(key) {
    return this.has(key) ? this.items[key] : undefined;
  }

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

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

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

  values() {
    return Object.values(this.items);
  }
}

各种实现方式的比较

普通对象 vs Map

  • Map 保持键的插入顺序,普通对象不保证
  • Map 的键可以是任意类型,对象只能是字符串或 Symbol
  • Map 有 size 属性可直接获取大小
  • Map 性能更好,特别在频繁增删的场景

Object.create(null) vs 普通对象

js字典实现

  • Object.create(null) 创建的对象没有原型链,更干净
  • 避免与 Object.prototype 上的属性冲突

字典操作示例

遍历字典

// Map 遍历
for(let [key, value] of map) {
  console.log(key, value);
}

// 对象遍历
for(let key in dictionary) {
  console.log(key, dictionary[key]);
}

检查键是否存在

// Map
map.has('key1');

// 对象
'key1' in dictionary;

获取所有键/值

// Map
[...map.keys()];
[...map.values()];

// 对象
Object.keys(dictionary);
Object.values(dictionary);

选择哪种实现方式取决于具体需求,Map 通常是现代 JavaScript 中最推荐的选择,特别是在需要复杂键类型或频繁增删操作的场景。

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

相关文章

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

elementui字典

elementui字典

以下是关于 Element UI 字典功能的整理,结合常见使用场景和官方文档的实践方法: 字典数据绑定 Element UI 的 el-select 组件通常与字典数据结合使用。字典数据格式建议为数…

js实现防洪

js实现防洪

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

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…