JS的Map详细形式(十八)

简介: JS的Map详细形式(十八)

一. Map形式的定义


在JS处理数据的时候,常常要用到类似Java 的Map 形式,早期的时候是没有Map 的,目前版本是有Map 形式的。 Map对象的定义为:


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的元素值VALUE,失败不执行 
  this.set = function(_key,_value) {   
    for(i = 0; i < this.elements.length; i++) {  
      if(this.elements[i].key == _key) {   
        this.elements[i].value = _value;
        return;
      }
    }  
  }
    //删除指定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) {     
        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;     
    }     
}


二. Map 的使用


二.一 初始化对象


var subjMap=new Map();


二.二 放置值 put(key,value) 方法


subjMap.put("101","map的形式");


二.三 取出值 get(key)方法


var name=subjMap.get("101");


二.四 判断是否为空 isEmpty() 方法


if(subjMap.isEmpty()){
  alert("没有数据");
}else{
  alert("有数据");
}


二.五 map的长度 size() 方法


alert("长度是:"+subjMap.size());


二.六 清空数据 clear()


subjMap.clear();


二.七 重新设置值 set(key,value) 方法


subjMap.set("101","重新设置值");


二.八 移除值 remove(key) 方法


subjMap.remove("101");


二.九 根据索引来取出值 element(key)


var obj=subjMap.element("101");


二.十 是否包含containsKey(key) 方法


if(subjMap.containsKey("101")){
  alert("包含该key值");
}


二.十一 包含值 containsValue(value) 方法


if(subjMap.containsValue("重新设置值")){
  alert("包含该value值");
}


二.十二 遍历所有keys()


var keyArr=subjMap.keys();


二.十三 遍历所有values()


var valueArr=subjMap.values();


三.常用技巧


  1. 设置值时用 put, 取出时用get
  2. 清空时,用.clear() 即可
  3. 判断是否为空时,可以用.size() 长度。


谢谢!!!

相关文章
|
6月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 JavaScript 前端开发
js的map和set |21
js的map和set |21
|
JavaScript 前端开发
js map和reduce
js map和reduce
|
11月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
188 0
|
11月前
|
前端开发 JavaScript 索引
JavaScript 数组常用高阶函数总结,包括插入,删除,更新,反转,排序等,如map、splice等
JavaScript数组的常用高阶函数,包括遍历、插入、删除、更新、反转和排序等操作,如map、splice、push、pop、reverse等。
308 0
|
JavaScript 前端开发
JavaScript 中 五种迭代数组的方法 every some map filter forEach
本文介绍了JavaScript中五种常用数组迭代方法:every、some、filter、map和forEach,并通过示例代码展示了它们的基本用法和区别。
|
JavaScript 前端开发
JavaScript实现map
//定义map function Map() { this.container = {}; } //将key-value放入map中 Map.prototype.
751 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
241 2
|
10月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
162 1
JavaScript中的原型 保姆级文章一文搞懂