`
darkma
  • 浏览: 526331 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

JavaScript中实现Map对象

阅读更多

/*
 * JsMap对象,实现MAP功能
 * API接口:
 * 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)
 *
 * for example:
 * var map = new JsMap();
 * map.put("key", "value");
 * var val = map.get("key")
 */
function JsMap()
{
 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中,原生支持了多种数据结构,其中数组(Array)是最为常见的数据结构之一。然而,在某些应用场景下,我们可能需要一种能够根据键(key)快速查找值(value)的...

    javascript Map对象 原型 插件

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

    JavaScript实现Array(数组)和Map

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

    javascript的Map实现(高性能)

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

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

    **自定义实现Map的思路** 1. **数据结构**:首先,我们需要一个数据结构来存储键值对,可以使用数组或对象。数组可以按照特定格式(如[key, value])存储,而对象则需要处理键的唯一性。 2. **size属性**:维护一...

    javascript中数组、对象

    在JavaScript中,数组和对象是两种非常基础且重要的数据结构,它们被广泛应用于各种场景,如数据存储、逻辑处理和对象表示。这篇文章将深入探讨这两种数据类型,以及相关的操作和工具。 **一、数组** 数组在...

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

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

    JavaScript 实现Array(数组)和Map

    对象合并则可以将多个对象的属性整合到一个新的对象中。 `test.html`文件通常是用来测试这些自定义实现的,你可以通过这个HTML页面运行代码并查看结果。`使用说明.txt`文件会提供如何使用这些JavaScript文件以及...

    javascript 中Map的使用

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

    js 实现map的方式

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

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

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

    利用js实现Map

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

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

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

    JavaScript核心对象参考手册

    1. **全局对象Global**: JavaScript中的全局对象提供了许多内置函数,如`Math`(数学运算)、`Date`(日期和时间操作)、`JSON`(JSON解析和序列化)等。全局变量默认会成为全局对象的属性。 2. **对象创建与原型...

    JavaScript中实现Map的示例代码

    遍历keys数组,找到匹配的键并从数组和数据对象中移除。 4. `each(fn)`:遍历Map,执行提供的回调函数,对每个键值对进行操作。 5. `entrySet()`:返回一个包含所有键值对的数组。 6. `isEmpty()`:检查Map是否为空...

    js实现map用法

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

    JavaScript实现Java中Map容器的方法

    JavaScript实现Java中Map容器的方法主要依赖于JavaScript对象的特性,即对象中不能有重复的属性名,这与Java中的Map功能相似。在给出的代码示例中,通过构造函数functionMap创建了一个“Map”对象,并为该对象定义了...

    JavaScript中实现map功能代码分享

    本文将深入探讨如何使用JavaScript实现一个简单的Map功能。 首先,我们来看一下提供的代码片段。这个自定义Map类包含以下方法: 1. **size()** - 返回Map中元素的数量,即键值对的数量。它通过返回存储元素的数组...

Global site tag (gtag.js) - Google Analytics