`
bishen
  • 浏览: 11938 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaScript Map对象的实现

    博客分类:
  • web
阅读更多
/*
* MAP对象,实现MAP功能
*
* 接口:
* size()     获取MAP元素个数
* isEmpty()    判断MAP是否为空
* clear()     删除MAP所有元素
* put(key, value)   向MAP中增加元素(key, value)
* remove(key)    删除指定KEY的元素,成功返回True,失败返回False
* get(key)    获取指定KEY的元素值VALUE,失败返回NULL
* element(index)   获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
* containsKey(key)  判断MAP中是否含有指定KEY的元素
* containsValue(value) 判断MAP中是否含有指定VALUE的元素
* values()    获取MAP中所有VALUE的数组(ARRAY)
* keys()     获取MAP中所有KEY的数组(ARRAY)
*
* 例子:
* var map = new Map();
*
* map.put("key", "value");
* var val = map.get("key")
* ……
*
*/
function Map() {
this.elements = new Array();

//获取MAP元素个数
this.size = function() {
return this.elements.length;
}

//判断MAP是否为空
this.isEmpty = function() {
return (this.elements.length < 1);
}

//删除MAP所有元素
this.clear = function() {
this.elements = new Array();
}

//向MAP中增加元素(key, value)
this.put = function(_key, _value) {
this.elements.push( {
key : _key,
value : _value
});
}

//删除指定KEY的元素,成功返回True,失败返回False
this.remove = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
}

//获取指定KEY的元素值VALUE,失败返回NULL
this.get = function(_key) {
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
} catch (e) {
return null;
}
}

//获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
this.element = function(_index) {
if (_index < 0 || _index >= this.elements.length) {
return null;
}
return this.elements[_index];
}

//判断MAP中是否含有指定KEY的元素
this.containsKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
}

//判断MAP中是否含有指定VALUE的元素
this.containsValue = function(_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
}

//获取MAP中所有VALUE的数组(ARRAY)
this.values = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].value);
}
return arr;
}

//获取MAP中所有KEY的数组(ARRAY)
this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
}
}
分享到:
评论

相关推荐

    javascript Map对象 原型 插件

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

    在JavaScript中实现map对象

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

    javascript的Map实现(高性能)

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

    JavaScript实现Array(数组)和Map

    `object.js` 文件可能涉及到的是JavaScript对象的操作,虽然不是直接与Array或Map相关,但它们在JavaScript中是重要的数据结构。JavaScript对象是一种键值对的集合,键通常是字符串,但也可以是符号(Symbol)。与...

    JavaScript核心对象参考手册

    15. **Proxy**: Proxy可以拦截对象的访问,实现自定义的行为,如数据验证、缓存等。 16. **Symbol**: Symbol是新的原始数据类型,创建独一无二的标识符,避免命名冲突。 以上知识点涵盖了JavaScript核心对象的基本...

    JavaScript 实现Array(数组)和Map

    在JavaScript中,对象的键默认是字符串,而Map可以使用任何可哈希的值作为键,包括对象、数字、字符串等。Map的一些主要方法包括set、get、has、delete、clear等。在`map.js`文件中,可能会有对Map的实现或扩展,...

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

    在JavaScript的ES6版本中引入了Map对象,以弥补对象作为哈希表的一些不足,如对象的键总是字符串或者Symbol类型。本文将深入探讨如何使用JavaScript实现Map,以及它的特性和优势。 首先,创建一个Map对象非常简单,...

    利用js实现Map

    **JavaScript Map对象详解与实践应用** 在JavaScript的世界里,`Map`对象是一个强大的数据结构,它允许我们存储键值对,且键可以是任意类型,而不仅仅是字符串。这与原生的`Object`有着本质的区别,`Object`的键...

    js 实现map的方式

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

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

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

    javascript中数组、对象

    例如,对于数组和对象的方法,了解它们的实现可以帮助我们优化代码性能。同时,许多工具如`lodash`和`underscore.js`提供了丰富的实用函数,如`_.forEach`、`_.map`、`_.find`等,用于简化数组和对象的操作。 **四...

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

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

    javascript 中Map的使用

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

    即用即查JavaScript核心对象参考手册:JavaScript

    作为JavaScript的核心,其内置对象是理解和掌握语言的关键。以下是对这些核心对象的详细阐述: 1. **全局对象Global**: 全局对象在任何作用域下都可访问,它包含了一些内置属性和方法,如`window`(在浏览器环境...

    javascript实现Java中的Map对象功能的实例详解

    javascript 自定义对象实现Java中的Map对象功能 Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据...

    Javascript API for ArcGIS Server对象模型图.rar

    2. **Map对象**:Map是整个GIS应用的核心,它管理着地图的图层、比例尺、中心点等关键属性。通过创建Map对象并添加图层,可以构建基本的地图界面。 3. **Layer对象**:Layer对象代表地图中的一个图层,它可以是动态...

    js遍历map javaScript遍历map的简单实现

    标题中提到的“js遍历map javaScript遍历map的简单实现”指的是如何在JavaScript中简单实现对Map对象的遍历。在JavaScript中,Map对象是一种存储键值对的结构,类似于Object,但是主要区别在于Map允许任何类型的值...

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

    总结来说,JavaScript中的HashMap实现需要注意对象原型链的影响,使用`hasOwnProperty`来检查对象自身属性,以及通过创建无原型的裸对象来避免潜在问题。通过这种方式,可以创建一个更高效、更可控的键值对存储结构...

Global site tag (gtag.js) - Google Analytics