JavaScript 自定义 Map 对象实现键值对存储
作者:纸飞机时间:2026-10-28 20:25:29浏览:624
本文介绍如何在 JavaScript 中通过自定义对象模拟 Java 的 Map 功能。利用数组存储键值对,实现 put、get、remove 等方法,支持字符串 Key 的增删改查操作,适用于需要键值对存储但不依赖内置 Map 的场景。
JavaScript 自定义 Map 对象实现键值对存储
本文详细介绍一种在 JavaScript 中通过自定义对象模拟 Java Map 功能的方法,供开发者参考。
Java 提供了集合和 Map 等便捷的对象存储工具,但在 JavaScript 中,默认主要依赖 Array 对象进行数据存储。
为此,我们可以创建一个自定义对象,内部使用数组存储数据。每个数据项由一个 Key 和实际存储的内容组成。Key 必须使用 String 类型,这与 Java 中的 Map 行为一致,支持增加、删除、修改和获取操作。
该工具类的使用非常简便,下面展示具体代码实现。
代码如下:
/**
* @version 1.0
* 用于实现页面 Map 对象,Key 只能是 String,对象随意
*/
var Map = function(){
this._entrys = new Array();
this.put = function(key, value){
if (key == null || key == undefined) {
return;
}
var index = this._getIndex(key);
if (index == -1) {
var entry = new Object();
entry.key = key;
entry.value = value;
this._entrys[this._entrys.length] = entry;
}else{
this._entrys[index].value = value;
}
};
this.get = function(key){
var index = this._getIndex(key);
return (index != -1) ? this._entrys[index].value : null;
};
this.remove = function(key){
var index = this._getIndex(key);
if (index != -1) {
this._entrys.splice(index, 1);
}
};
this.clear = function(){
this._entrys.length = 0;;
};
this.contains = function(key){
var index = this._getIndex(key);
return (index != -1) ? true : false;
};
this.getCount = function(){
return this._entrys.length;
};
this.getEntrys = function(){
return this._entrys;
};
this._getIndex = function(key){
if (key == null || key == undefined) {
return -1;
}
var _length = this._entrys.length;
for (var i = 0; i < _length; i++) {
var entry = this._entrys[i];
if (entry == null || entry == undefined) {
continue;
}
if (entry.key === key) {//equal
return i;
}
}
return -1;
};
}如果对 JavaScript 中对象的创建等基础知识不熟悉,建议查阅相关资料。
代码如下:
// 自定义 Map 对象
var map = new Map();
map.put("a","a");
alert(map.get("a"));
map.put("a","b");
alert(map.get("a"));执行结果先弹出 a,随后弹出 b,因为后存入的值会覆盖之前的值。
其他方法如 remove、clear 等,读者可自行测试验证。
希望本文所述内容对大家的 JavaScript 程序设计有所帮助。
作者最新文章
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
