JavaScript 自定义 Map 对象实现键值对存储

作者:纸飞机

时间:2026-10-28

浏览:623

本文介绍如何在 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 程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章