/*
* 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类,使用习惯完全依据于java的map使用习惯编写,java中map的用法基本一样,导入包即可使用
在JavaScript中,`Map`对象是一种内置的数据结构,用于存储键值对,其中键可以是任何类型,而不仅仅是字符串。然而,在某些情况下,我们可能需要自定义一个类似于`Map`的功能,特别是在旧版本的JavaScript中,它不...
这个JavaScript文件是实现自定义Infowindow的核心。它通常会继承Esri的`InfoWindowBase`类,这个基类提供了基础的Infowindow功能,包括打开、关闭、定位等。通过继承,我们可以扩展其功能,添加自定义的交互和样式...
"echarts map自定义图片.zip"这个压缩包文件正是提供了这样的解决方案。下面将详细阐述如何在ECharts中自定义地图并使用图片。 首先,ECharts是一个由百度开发的开源JavaScript数据可视化库,它提供了一系列丰富的...
在JavaScript中,Array和Map是两种非常重要的数据结构,它们各有各的特点和应用场景。这篇文章将深入探讨这两个概念,以及如何在实际开发中使用它们。 首先,Array是JavaScript中最基础的数据结构之一,它允许我们...
ECharts是一款基于JavaScript的数据可视化库,它提供了丰富的图表类型,如柱状图、折线图、饼图等,以及强大的地图功能。在这个特定的主题中,我们关注的是如何在ECharts地图上自定义显示不同的图标点,并且点击这些...
本话题主要聚焦于如何利用ArcGIS for JavaScript加载天地图以及添加自定义图层。 首先,让我们深入了解ArcGIS for JavaScript的核心概念。它基于ESRI的地理信息系统技术,提供了丰富的API接口,可以实现地图的创建...
在本项目中,我们利用`react-amap`这个库,它是高德地图JavaScript API的React封装,使我们能够在React组件中方便地使用高德地图的各种功能。以下是关于`react-amap`、Markers、Circle、ContextMenu以及自定义...
在JavaScript编程中,Array和Map是两种非常重要的数据结构,它们各自有其独特的作用和应用场景。Array主要用于存储一组有序的元素,而Map则提供了一种键值对的存储方式,适用于关联不同类型的值。 Array(数组)是...
1.可以用null,boolean,string,number,array,Date,自定义类的对象作键值,数组里的元素必须是实现equals方法的类型,而且数组里含有null,undefined,NaN会弹出异常; 2.数组维数尽量不要太多,程序里递归检查数组元素...
你也可以利用`Map.infoWindow.hide()`和`Map.infoWindow.show()`方法来控制弹出框的显示和隐藏。 5. **优化用户体验**:为了提高用户体验,你还可以添加动画效果,比如淡入淡出、滑动等,使得弹出框的出现和消失...
在JavaScript的世界里,`Map`对象是一个强大的数据结构,它允许我们存储键值对,且键可以是任意类型,而不仅仅是字符串。这与原生的`Object`有着本质的区别,`Object`的键必须是字符串或符号。本文将深入探讨`Map`...
在JavaScript中,Map是一种对象类型,用于存储键值对集合。然而,在早期的...对于学习如何在JavaScript中操作和管理数据集,了解这样的自定义Map实现可以增强开发者的能力,并且可以用来构建更复杂的数据结构。
2. **加载模板内容**:在JavaScript中,使用`AMap.UI.loadUI`方法加载自定义模板。例如: ```javascript AMap.UI.loadUI(['ui/infowindow'], function(UI) { // UI.infoWindow是自定义信息窗口的构造函数 }); `...
1. **键值对存储**:`Map`允许存储任意类型的键值对,包括对象、基本类型、甚至其他`Map`实例。 2. **键的唯一性**:在`Map`中,每个键都是唯一的,不会像对象那样因同名属性覆盖问题。 3. **大小跟踪**:`Map`...
2. **数据类型**:JavaScript有七种数据类型,包括基本类型(Boolean、Null、Undefined、Number、String、Symbol、BigInt)和引用类型(Object)。 3. **操作符**:包括算术操作符(+、-、*、/等)、比较操作符(==...
在使用Google Map API进行开发时,为地图添加自定义标记是一项常见的需求,这可以使地图更加生动且具有个性化。本文将详细介绍如何在Google Map上添加使用图片作为标记的方法,以实现自定义的效果。 首先,理解...
在使用高德地图进行开发时,自定义点击弹框(气泡)是一个常见的需求,它能够为用户提供丰富的信息展示和交互体验。本文将详细介绍如何在高德地图API中实现这一功能,以及结合提供的GDMapPopup文件,我们可以进一步...
ECharts是一款由百度开发的基于JavaScript的数据可视化库,它支持丰富的图表类型,包括柱状图、折线图、饼图以及地图等。在ECharts中,我们可以利用其强大的地图功能来构建具有个性化的数据可视化应用。 1. **...