`
frank1998819
  • 浏览: 758261 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Js 自定义Map对象 (转)

    博客分类:
  • JS
 
阅读更多
/*
 * 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;
	}
}
分享到:
评论

相关推荐

    JS自定义对象实现Java中Map对象功能的方法

    本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一...

    JS实现的自定义map方法示例

    然而,在某些情况下,我们可能需要自定义一个类似于`Map`的功能,特别是在旧版本的JavaScript中,它不支持原生的`Map`对象。本示例将详细介绍如何使用JavaScript实现一个简单的自定义`Map`方法。 首先,我们定义一...

    js仿java的map对象

    在JavaScript中,尽管原生没有提供与Java完全相同的Map对象,但可以通过自定义对象或使用ES6提供的Map数据结构来实现类似的功能。本篇将详细探讨如何在JavaScript中模仿Java的Map对象,以及ES6 Map的数据结构和用法...

    对象转换成JSON和Map

    - **对象转Map方法**:Java没有内置的方法直接将对象转换为Map,但我们可以手动实现。这通常涉及遍历对象的属性并创建对应的键值对。也可以使用第三方库如Dozer或ModelMapper来简化这个过程。 - **自定义转换**:...

    java对象List,Map转json格式

    4. **Map对象转JSON**: 对于Map对象,转换过程类似。只需确保Map的键是字符串类型,值也是可序列化的: ```java String jsonString = mapper.writeValueAsString(yourMap); ``` 5. **自定义对象转JSON**: 如果...

    arcgis for js自定义鼠标样式.zip

    在ArcGIS for JS API中,可以使用`MapView`对象的`setCursor`方法来更改鼠标的样式。例如: ```javascript view.setCursor('pointer'); // 更改为指针样式 ``` 同时,你还可以创建自己的CSS样式来实现更复杂的鼠标...

    json转Map,转javaBean,javBean和Map转json

    当我们接收到一个JSON字符串时,可以将其转换为Map对象以便于操作。在Java中,我们可以使用开源库如Jackson或Gson来实现这个功能。例如,使用Jackson的`ObjectMapper`类: ```java import ...

    Javacript中自定义的map.js 的方法

    然而,在早期的JavaScript版本中,并没有内建的Map对象。因此,开发者常常需要自己实现类似Map的功能。这通常涉及到创建一个自定义对象,并为它添加用于操作键值对的方法,如新增、删除、获取和判断键值对数量等。在...

    利用js实现Map

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

    JavaScript实现Array(数组)和Map

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

    js 自定义下拉框

    综上所述,使用JavaScript自定义下拉框涉及到HTML结构的搭建、事件监听、数据处理、DOM操作以及CSS样式定制等多个方面。通过结合这些技术,我们可以创建出符合项目需求的、功能丰富的自定义下拉框组件。在实际开发中...

    jsMap转换为JSON 字符串.docx

    在JavaScript中,Map对象是一种内置的数据结构,它允许我们存储键值对,其中键可以是任何类型,而不仅仅是字符串。这与对象(Object)不同,对象的键必须是字符串。然而,当涉及到数据交换或存储时,通常需要将Map...

    js中Map应用

    在JavaScript中,`Map`对象是一种内置的数据结构,它保存键值对,并且可以按插入顺序记住元素。与普通的JavaScript对象不同的是,`Map`的键可以是任何类型的值(不仅仅是字符串或符号)。本文将详细介绍如何在...

    Arcgis for javascript 加载天地图及自定义图

    本话题主要聚焦于如何利用ArcGIS for JavaScript加载天地图以及添加自定义图层。 首先,让我们深入了解ArcGIS for JavaScript的核心概念。它基于ESRI的地理信息系统技术,提供了丰富的API接口,可以实现地图的创建...

    js点击绘制地铁线路图地铁站(可自定义颜色)百度map_subway line

    本教程将重点讲解如何使用JavaScript和百度地图API来创建一个自定义的地铁线路图,适用于H5和Web端应用。通过理解并掌握以下关键知识点,你可以实现一个功能丰富的地铁线路图,包括自定义颜色等特性。 1. **百度...

    js Map 工具类 MapUtil

    在JavaScript的世界里,`Map`对象是一个非常重要的数据结构,它允许我们存储键值对,其中键可以是任何类型的值,而不仅仅是字符串。`MapUtil`工具类则是为了方便开发者更高效、更灵活地操作`Map`对象。下面我们将...

    JavaScript 实现Array(数组)和Map

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

    arcgis javascript自定义infowindow

    这通常涉及到`Map`、`Layer`、`Graphic`对象的使用,以及事件监听器的设置。 在实际应用中,自定义Infowindow的常见需求包括: - **动态内容**:根据图斑的属性数据动态生成Infowindow内容。 - **交互性**:添加...

Global site tag (gtag.js) - Google Analytics