`
ben_hu
  • 浏览: 93989 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JavaScript实现Map数据结构

阅读更多
function Map(){
   this.map    =  new Object();
   this.length = 0;
  
   this.size = function(){
       return this.length;
   }
  
   this.put = function(key, value){
     
      if( !this.map['_' + key])
        {
             ++this.length;
        }
     
      this.map['_' + key] = value;
    
   }
  
   this.remove = function(key){
      
       if(this.map['_' + key])
      {
         
          --this.length;
        return delete this.map['_' + key];
      }
      else
      {
          return false;
      }
   }
  
   this.containsKey = function(key){
   
     return this.map['_' + key] ? true:false;
  
   }
   
   this.get = function(key){   
 
      return this.map['_' + key] ? this.map['_' + key]:null;
 
   }


 this.inspect=function(){   
     var str = '';
    
     for(var each in this.map)
     {
          str+= '\n'+ each + '  Value:'+ this.map[each];
     }
    
     return str;
   }
    
}

------------------------------------------
测试程序

//测试Map的调用方法

function testMap(){
   var testmap=new Map();
   alert("cur size:" + testmap.size());
    alert("get bu cunzai:" + testmap.get("bu cunzai"));
   testmap.put("01","michael");
    testmap.put("01","michael1");
     testmap.put("01","michael11");
      testmap.put("01","michael1111");
       testmap.put("011","michael1111");
        testmap.put("object",new Array());
        testmap.put("number",1234);
        testmap.put(78944444444444444422222222222222,1234);
        testmap.put("function",function(num){return num;});
      
        //alert("function:"+ testmap.get("function")(789));
        alert("function:"+ testmap.get("function")(78944444444444444422222222222222));
   alert ("cur size:" + testmap.size() + "inspect:" + testmap.inspect());
    alert("remove function:" + testmap.remove("function"));
    alert("remove object:" + testmap.remove("object"));
   testmap.put("02","michael2");
   testmap.put("022","achang2");
   testmap.put("022","achang3");
   alert ("cur size:" + testmap.size() + "inspect:" + testmap.inspect());
  
 
   var key="02"
   
   if (testmap.containsKey(key)){
       var value=testmap.get(key);
       alert ("02 first|"+value);
   }else{
       alert("no Cotain" + key);
   }
 
  alert("remove:" + testmap.remove("02"));
  alert("cur size:" + testmap.size());
  alert( testmap.remove("0000002"));
  alert("cur size:" + testmap.size());
  alert("contain:" + testmap.containsKey("0000002"));
  
  if (testmap.containsKey(key)){
       var value=testmap.get(key);
       alert ("02 |"+ value);
   }else{
       alert ("no Contain:"+key);
   }
 
  

}
testMap();
分享到:
评论

相关推荐

    JavaScript实现Array(数组)和Map

    在JavaScript中,Array和Map是两种非常重要的数据结构,它们各有各的特点和应用场景。这篇文章将深入探讨这两个概念,以及如何在实际开发中使用它们。 首先,Array是JavaScript中最基础的数据结构之一,它允许我们...

    jsmap数据结构.pdf

    JavaScript中的Map数据结构是ES6引入的一种新的数据存储方式,它与传统的Object对象有显著区别。Map对象主要用于保存键值对,其特点是键可以是任意数据类型,而不仅仅是字符串或Symbol,这使得Map在处理非字符串键时...

    浅谈es6 javascript的map数据结构

    本文介绍了es6 javascript的map数据结构,分享给大家,具体如下: Map 结构的目的和基本用法 JavaScript 的对象( Object), 本质上是键值对的集合( Hash 结构), 但是传统上只能用字符串当作键。 这给它的使用...

    JavaScript 实现Array(数组)和Map

    在JavaScript编程中,Array和Map是两种非常重要的数据结构,它们各自有其独特的作用和应用场景。Array主要用于存储一组有序的元素,而Map则提供了一种键值对的存储方式,适用于关联不同类型的值。 Array(数组)是...

    javascript的Map实现(高性能)

    在JavaScript中,`Map`是一种内置的数据结构,用于存储键值对。相比于对象,`Map`的优势在于它可以使用任何类型的值作为键,包括对象。在本文中,我们将深入探讨一种高性能的JavaScript `Map`实现,它基于JSON,具有...

    在JavaScript中实现map对象

    在JavaScript中,原生支持了多种数据结构,其中数组(Array)是最为常见的数据结构之一。然而,在某些应用场景下,我们可能需要一种能够根据键(key)快速查找值(value)的数据结构,这便是Map对象的核心功能。虽然ES6...

    JavaScript讲解了数据结构和算法.zip

    在JavaScript中,我们可以利用内置对象如Array、Map和Set,以及ES6引入的Set和WeakSet等,来实现各种数据结构。同时,JavaScript的函数式编程特性使得实现和操作这些数据结构更加便捷。例如,通过数组的push、pop、...

    基于JavaScript讲解的数据结构和算法

    本教程将深入探讨如何利用JavaScript来理解和实现各种数据结构和算法。 1. **数组(Array)**:数组是最基本的数据结构之一,JavaScript中的数组可以存储任意类型的值,并提供了丰富的内置方法,如push、pop、shift...

    详解JavaScript中Hash Map映射结构的实现_.docx

    在JavaScript中,哈希映射(HashMap)是一种数据结构,用于高效地存储和检索键值对。虽然JavaScript的内置对象`Object`可以被用来模拟哈希映射的行为,但它并不是一个标准的哈希表,因此可能会导致一些潜在问题。...

    用javaScript实现的map,经过测试,很好用

    JavaScript Map 是一种内置的数据结构,它允许我们存储键值对,并且键可以是任何类型,而不仅仅是字符串。在JavaScript的ES6版本中引入了Map对象,以弥补对象作为哈希表的一些不足,如对象的键总是字符串或者Symbol...

    JavaScript讲解数据结构和算法.zip

    在JavaScript中,这些数据结构可以通过内置对象如Array、Map或自定义对象来实现。例如: 1. **数组**:JavaScript的Array对象是最基本的数据结构,可以存储各种类型的值,并支持多种操作,如push、pop、shift、...

    利用js实现Map

    在JavaScript中,虽然已经有了内置的`Map`,但理解其实现原理对我们学习和使用这个数据结构大有裨益。下面是一个简单的`Map`实现示例: ```javascript class SimpleMap { constructor() { this.store = []; } ...

    Map数据结构.pdf

    Map数据结构是JavaScript中一种非常重要的数据存储机制,它弥补了传统对象(Object)在键值对处理上的局限性。在JavaScript的对象中,键通常被限制为字符串类型,这对于某些应用场景来说,显然不够灵活。而Map的引入,...

    Javascript 数据结构算法.zip

    JavaScript提供了Array、Map、Set等内置数据结构,以及函数、闭包等特性来实现各种高级数据结构。例如,可以使用数组模拟栈和队列,使用对象创建哈希表,甚至利用原型链构造复杂的数据结构。 算法则是解决问题的...

    js 实现map的方式

    JavaScript中的Map对象是一种数据结构,它允许我们存储键值对,并且键可以是任何类型,而不仅仅是字符串。Map对象在JavaScript ES6版本中被引入,为处理复杂的数据关联提供了更强大的工具,尤其对于那些需要使用非...

    javascript 中Map的使用

    JavaScript中的Map对象是ES6引入的一种新的数据结构,它提供了关联键值对的存储方式,与传统的对象不同,Map的键可以是任何类型的值,包括基本类型、对象甚至是其他Map实例。这一特性使得Map在处理大量复杂数据或者...

    js实现map用法

    JavaScript中的Map对象是ES6引入的一种新的数据结构,它提供了键值对的存储方式,与对象类似但有显著区别。Map的主要优势在于键可以是任意类型,而不仅仅是字符串,这使得它在处理复杂数据结构时非常有用。在本文中...

    JavaScript数据结构算法.zip

    通过阅读"学习JavaScript数据结构与算法.pdf",开发者不仅能加深对JavaScript数据结构的理解,还能掌握各种算法的实现和应用,从而提升编程能力和解决实际问题的效率。无论是初学者还是有经验的开发者,这份资源都能...

Global site tag (gtag.js) - Google Analytics