`
hotsmile
  • 浏览: 19529 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

javascript map 实现

阅读更多

001 /*
002  * MAP对象,实现MAP功能
003  *
004  * 接口:
005  * size()     获取MAP元素个数
006  * isEmpty()    判断MAP是否为空
007  * clear()     删除MAP所有元素
008  * put(key, value)   向MAP中增加元素(key, value)
009  * remove(key)    删除指定KEY的元素,成功返回True,失败返回False
010  * get(key)    获取指定KEY的元素值VALUE,失败返回NULL
011  * element(index)   获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
012  * containsKey(key)  判断MAP中是否含有指定KEY的元素
013  * containsValue(value) 判断MAP中是否含有指定VALUE的元素
014  * values()    获取MAP中所有VALUE的数组(ARRAY)
015  * keys()     获取MAP中所有KEY的数组(ARRAY)
016  *
017  * 例子:
018  * var map = new Map();
019  *
020  * map.put("key", "value");
021  * var val = map.get("key")
022  * ……
023  *
024  */
025 function Map() {
026     this.elements = new Array();
027  
028     //获取MAP元素个数
029     this.size = function() {
030         return this.elements.length;
031     }
032  
033     //判断MAP是否为空
034     this.isEmpty = function() {
035         return (this.elements.length < 1);
036     }
037  
038     //删除MAP所有元素
039     this.clear = function() {
040         this.elements = new Array();
041     }
042  
043     //向MAP中增加元素(key, value)
044     this.put = function(_key, _value) {
045         this.elements.push( {
046             key : _key,
047             value : _value
048         });
049     }
050  
051     //删除指定KEY的元素,成功返回True,失败返回False
052     this.remove = function(_key) {
053         var bln = false;
054         try {
055             for (i = 0; i < this.elements.length; i++) {
056                 if (this.elements[i].key == _key) {
057                     this.elements.splice(i, 1);
058                     return true;
059                 }
060             }
061         } catch (e) {
062             bln = false;
063         }
064         return bln;
065     }
066  
067     //获取指定KEY的元素值VALUE,失败返回NULL
068     this.get = function(_key) {
069         try {
070             for (i = 0; i < this.elements.length; i++) {
071                 if (this.elements[i].key == _key) {
072                     return this.elements[i].value;
073                 }
074             }
075         } catch (e) {
076             return null;
077         }
078     }
079  
080     //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
081     this.element = function(_index) {
082         if (_index < 0 || _index >= this.elements.length) {
083             return null;
084         }
085         return this.elements[_index];
086     }
087  
088     //判断MAP中是否含有指定KEY的元素
089     this.containsKey = function(_key) {
090         var bln = false;
091         try {
092             for (i = 0; i < this.elements.length; i++) {
093                 if (this.elements[i].key == _key) {
094                     bln = true;
095                 }
096             }
097         } catch (e) {
098             bln = false;
099         }
100         return bln;
101     }
102  
103     //判断MAP中是否含有指定VALUE的元素
104     this.containsValue = function(_value) {
105         var bln = false;
106         try {
107             for (i = 0; i < this.elements.length; i++) {
108                 if (this.elements[i].value == _value) {
109                     bln = true;
110                 }
111             }
112         } catch (e) {
113             bln = false;
114         }
115         return bln;
116     }
117  
118     //获取MAP中所有VALUE的数组(ARRAY)
119     this.values = function() {
120         var arr = new Array();
121         for (i = 0; i < this.elements.length; i++) {
122             arr.push(this.elements[i].value);
123         }
124         return arr;
125     }
126  
127     //获取MAP中所有KEY的数组(ARRAY)
128     this.keys = function() {
129         var arr = new Array();
130         for (i = 0; i < this.elements.length; i++) {
131             arr.push(this.elements[i].key);
132         }
133         return arr;
134     }
135 }

分享到:
评论
1 楼 ruler_internet 2012-03-01  
为什么不借用对象的属性呢?

相关推荐

    JavaScript实现Array(数组)和Map

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

    javascript的Map实现(高性能)

    在本文中,我们将深入探讨一种高性能的JavaScript `Map`实现,它基于JSON,具有出色的稳定性和更高的容量。 首先,我们来看传统的JavaScript `Map`。原生的`Map`提供了如`set`、`get`、`delete`、`has`等方法,便于...

    javascript Map对象 原型 插件

    javascript Map原型,对象,实现javascript中的Map数据类型功能

    在JavaScript中实现map对象

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

    JavaScript 实现Array(数组)和Map

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

    javascript实现map功能极其方便

    javascript实现map,极其方便,可在需要当前页处理多数据时使用

    gmap.rar_GMAP_javascript_map_map javascript_map offline

    在描述中,“高人把google map的javascript全部下载下来 可以实现大部分功能 离线使用GOOGLEMAP”,说明了这是一个高手编写的程序,他或她已经将Google Maps的JavaScript库进行了本地化处理,使得开发者可以在没有...

    利用js实现Map

    本文将深入探讨`Map`对象的原理、特性以及如何通过JavaScript实现`Map`的相关功能,并通过实例进行演示。 ### 1. Map的基本用法 创建一个`Map`对象非常简单,可以通过传入一个数组的数组来初始化,每个内部数组...

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

    本文将深入探讨如何使用JavaScript实现Map,以及它的特性和优势。 首先,创建一个Map对象非常简单,可以通过调用Map构造函数并传入可迭代对象(如数组)来初始化: ```javascript let map = new Map([[1, 'one'], ...

    javascript map类

    javascript map类。类中有相应demo,在javascript中实现Map的一个类,包括map中对应的一些数据结构相关算法。

    javascript模拟map,set类,用起来挺方便的!!!

    1.可以用null,boolean,string,number,array,Date,自定义类的对象作键值,数组里的元素必须是实现equals方法的类型,而且数组里含有null,undefined,NaN会弹出异常; 2.数组维数尽量不要太多,程序里递归检查数组元素...

    Javascript 中类似Map集合的实现键值对

    在JavaScript中,`Map`集合是一个内置的数据结构,用于存储键值对,它与对象不同,因为对象的键必须是字符串或符号,而`Map`则可以使用任何可哈希的值作为键。这篇博客文章可能探讨了如何通过自定义方式实现一个类似...

    JavaScript中实现Map的示例代码

    这个自定义的Map实现虽然简单,但它提供了一组基本操作,适用于大多数常见场景。在实际开发中,通常会使用JavaScript内置的`Map`对象,它提供了更丰富的功能,如迭代器和异步操作等。不过,这个示例对于理解Map的...

    javascript 中Map的使用

    3. Map的深拷贝:利用Map可以实现对象的深拷贝,通过递归将对象的所有属性转换为键值对存入Map,然后根据Map再构建新对象。 在实际开发中,Map常用于: - 保存索引映射关系,比如数组元素与其索引的对应。 - 维护多...

    基于Javascript实现的3D GIS,支持谷歌地图+必应地图+OpenStreetMap+搜索地图+天地图+源码+界面展示

    基于Javascript实现的3D GIS,支持谷歌地图+必应地图+OpenStreetMap+搜索地图+天地图+源码+界面展示,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于...

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

    本文将深入探讨如何在JavaScript中实现一个简单的HashMap结构,并讨论与`Object`相关的陷阱。 首先,我们来看一个简单的HashMap实现: ```javascript var hashMap = { Set: function(key, value) { this[key] = ...

    JavaScript实现Java中Map容器的方法

    在介绍JavaScript实现Java中Map容器方法之前,我们先要了解Map在Java和JavaScript中的概念和用途。Java中的Map是一个接口,它允许存储键值对,其中每个键映射到一个值,可以用于根据键快速检索值。在JavaScript中,...

    map-example.zip_html5_javascript_map

    在本项目中,“map-example.zip_html5_javascript_map”是一个包含使用HTML5和JavaScript实现的网页动态地图的压缩包。这个项目旨在展示如何利用这两种技术创建交互式地图应用,为用户提供丰富的地理信息可视化体验...

    js 实现map的方式

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

    js实现map用法

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

Global site tag (gtag.js) - Google Analytics