JavaScript 实现自定义 Map 数据结构与遍历方法

作者:小括号

时间:2026-10-23

浏览:84

本文介绍如何在 JavaScript 中基于普通对象实现一个自定义的 Map 数据结构。通过封装 put、get、size 及 eachMap 等方法,演示了键值对的存储、获取、计数及遍历操作,为理解 JS 对象作为哈希表的基础用法提供示例。

文章目录

JavaScript 自定义 Map 数据结构实现

本文通过一个具体实例,展示了如何使用 JavaScript 语言自定义实现一个 Map(映射)数据结构。该示例旨在为开发者提供参考,帮助理解如何在原生对象基础上扩展功能。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>www.jb51.net JS自定义map方法</title>
</head>
<body>
<script>
  window.onload = function() {
    function Map() {
      var obj = {};
      this.put = function(key, value) {
        obj[key] = value;//把键值绑定到obj对象上
      }
      //size方法,获取Map容器的个数
      this.size = function() {
        var count = 0;
        for(var attr in obj) {
          count++;
        }
        return count;
      }
      //get方法,根据key获取value的值
      this.get = function(key) {
        if(obj[key] || obj[key] === 0 || obj[key] === false) {
          return obj[key]
        } else {
          return null;
        }
      }
      //remove方法,删除方法
      this.remove = function(key) {
        if(obj[key] || obj[key] === 0 || obj[key] === false) {
          delete obj[key]
        }
      }
      //each方法,遍历方法
      this.eachMap = function(callBack) {
        for(var attr in obj) {
          callBack(attr, obj[attr])
        }
      }
    }
    var m = new Map();
    m.put('01', "aaa");
    m.put('02', "bbb");
    m.put('03', "ccc");
    m.put('04', "ddd");
    m.put('05', "eee");
    //alert(m.size());
    //alert(m.get('03'));
    // alert(m.remove('ccc'));
    m.eachMap(function(key ,value) {
      console.log(key)
      console.log(value)
    })
  }
</script>
</body>
</html>

以下是代码运行后的实际输出结果。

JavaScript 自定义 Map 数据结构实现

读者可以使用在线 HTML/CSS/JavaScript 代码运行工具(http://tools.jb51.net/code/HtmlJsRun)来测试上述代码的实际运行效果,以便直观查看控制台输出。

如需深入了解 JavaScript 相关知识,建议查阅本站专题:《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》、《javascript面向对象入门教程》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》以及《JavaScript错误与调试技巧总结》。

希望本文提供的自定义 Map 实现方案能对读者的 JavaScript 程序设计工作有所助益。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章