当前位置:首页 > JavaScript

js实现字典

2026-03-14 16:53:00JavaScript

实现字典的常见方法

在JavaScript中,字典通常通过对象(Object)或Map数据结构实现。以下是几种实现方式:

使用普通对象

普通对象是JavaScript中最简单的字典实现方式,键值对存储。

js实现字典

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

// 添加元素
dictionary["key3"] = "value3";

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

// 删除元素
delete dictionary["key2"];

使用Map对象

Map是ES6引入的专门用于键值对存储的数据结构,相比普通对象有更多优势。

const dictionary = new Map();

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

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

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

// 检查是否存在
console.log(dictionary.has("key1")); // true

使用WeakMap

WeakMap与Map类似,但键必须是对象,且不可枚举。

js实现字典

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

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

字典操作示例

遍历字典

对于普通对象:

const dict = {a:1, b:2, c:3};

for (const key in dict) {
  console.log(key, dict[key]);
}

对于Map:

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

dict.forEach((value, key) => {
  console.log(key, value);
});

清空字典

// 对象
const objDict = {a:1};
objDict = {}; // 或
for (const key in objDict) {
  delete objDict[key];
}

// Map
const mapDict = new Map();
mapDict.clear();

选择建议

  • 需要简单键值存储时使用普通对象
  • 需要维护键值对的插入顺序时使用Map
  • 键需要是非字符串类型时使用Map
  • 需要避免内存泄漏时考虑WeakMap

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

相关文章

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选框 co…

js 多选 实现

js 多选 实现

实现多选的 JavaScript 方法 使用复选框(Checkbox)实现多选 通过 HTML 的 checkbox 元素配合 JavaScript 实现多选功能。用户可以选择多个选项,提交时获取所有…

js实现div隐藏

js实现div隐藏

使用CSS的display属性隐藏div 通过设置元素的display属性为none,可以完全隐藏div元素。这种方法不仅隐藏元素,还会从文档流中移除,不占据页面空间。 document.getEl…

js实现选择目录

js实现选择目录

在JavaScript中实现选择目录的功能通常需要结合浏览器API或第三方库,以下是几种常见方法: 使用 <input type="file"> 的 webkitdirectory 属性…