精华内容
下载资源
问答
  • js定义map集合
    万次阅读
    2017-06-15 16:48:16
    var map_=new Map();
    //定义一个Map()集合
    function Map(){
     var struct=function(key,value,add){
      this.key=key;
      this.value=value;
     };
     //添加map键值对
     var put =function(key,value,add){
      for(var i=0;i<this.arr.length;i++){
       if(this.arr[i].key===key){
           if(typeof(add) == "undefined"){
            add = false;
        }
        if(add){//add=true 追加值
         this.arr[i].value+=","+value;//有相同的key,这value的值往后最加,用逗号(,)隔开而不是替换原先的值
        }else{
         this.arr[i].value=value;//替换原先的值
        }
         return;
       }
      };
      this.arr[this.arr.length]=new struct(key,value);
     };
     //根据key获取value
     var get=function(key){
      for(var i=0;i<this.arr.length;i++){
       if(this.arr[i].key===key){
        return this.arr[i].value;
       }
      }
      return null;
     };
     //根据key删除
     var remove=function(key){
      var v;
      for(var i=0;i<this.arr.length;i++){
       v=this.arr.pop();
       if(v.key===key){
        continue;
       }
       this.arr.unshift(v);
      }
     };
     //获取map键值对个数
     var size=function(){
      return this.arr.length;
     };
     //判断map是否为空
     var isEmpty=function(){
      return this.arr.length<=0;
     };
     this.arr=new Array();
     this.get=get;
     this.put=put;
     this.remove=remove;
     this.size=size;
     this.isEmpty=isEmpty;
    }


    更多相关内容
  • js自定义map集合

    2018-01-15 17:22:51
    由于原本把需要的数据存放到cookie中,但是cookie不能的key不能自动转译中文,出现乱码,后台服务器报错:Control character in cookie value or attribute.所以改为自定义map集合
  • js自定义Map集合

    2020-11-11 11:53:18
    * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() 删除MAP所有元素 * set(key, value) 向MAP中增加元素(key, value) * remove(key) 删除指定KEY的元素,...
     /**
    * MAP对象,实现MAP功能 
    * 
    * 接口: 
    * size() 获取MAP元素个数 
    * isEmpty() 判断MAP是否为空 
    * clear() 删除MAP所有元素 
    * set(key, value) 向MAP中增加元素(key, value) 
    * remove(key) 删除指定KEY的元素,成功返回True,失败返回False 
    * get(key) 获取指定KEY的元素值VALUE,失败返回NULL 
    * containsKey(key) 判断MAP中是否含有指定KEY的元素 
    * values() 获取MAP中所有VALUE的数组(ARRAY) 
    * keys() 获取MAP中所有KEY的数组(ARRAY) 
    * 
    * 例子: 
    * var map = new HashMap(); 
    * 
    * map.put("key", "value"); 
    * var val = map.get("key") 
    * …… 
    * 
    */
    function HashMap() {
    	/**
    	* 存放数据
    	*/
    	this.data = new Object();
    	/**
    	* 放入一个键值对
    	* @param {String} key
    	* @param {Object} value
    	*/
    	this.set = function(key, value){
    		this.data[key] = value;
    	};
    	/**
    	* 获取某键对应的值
    	* @param {String} key
    	* @return {Object} value
    	*/
    	this.get = function(key){
    		return this.containsKey(key)?this.data[key]:null; 
    	};
    	/**
    	* 删除一个键值对
    	* @param {String} key
    	*/
    	this.remove = function(key){
    		if(this.containsKey()){
    			return delete this.data[key];
    		}
    		return false;
    	};
    	/**
    	* 遍历Map,执行处理函数
    	* 
    	* @param {Function} 回调函数 function(key,value,index){..}
    	*/
    	this.each = function(fn){
    		if(typeof fn != 'function'){
    			return null;
    		}
    		var obj = this.keySet();
    		for(var i=0;i<obj.length;i++){
    			var k = obj[i];
    			fn(k,this.data[k],i);
    		}
    	};
    	/**
    	* 获取键值数组(类似Java的entrySet())
    	* @return 键值对象{key,value}的数组
    	*/
    	this.entrys = function(){
    		var obj = this.keySet();
    		var entrys = new Array(obj.length);
    		for (var i =0; i < obj.length; i++) {
    			entrys[i] = {
    				key : obj[i],
    				value : this.data[obj[i]]
    			};
    		}
    		return entrys;
    	};
    	/**
    	* 判断Map是否为空
    	*/
    	this.isEmpty = function(){
    		var flag = this.size()>0 ? true : false;
    		return flag;
    	};
    	/**
    	* 获取键值对数量
    	*/
    	this.size = function(){
    		var objLen = 0;
    		for(var i in this.data){
    			objLen++;
    		}
    		return objLen;
    	};
    	/**
    	* 重写toString ,装成JSON格式
    	*/
    	this.toString = function(){
    		var s = "[";
    		var obj = this.keySet() ;
    		for(var i=0;i<obj.length;i++,s+=','){
    			var k = obj[i];
    			s += "{'id':'" + k+"','value':'"+this.data[k]+"'}";
    		}
    		s=s.substring(0, s.length-1);
    		if(s!=""){
    			s+="]";
    		}
    		return s;
    	};
    	/**
    	* 输出Value的值
    	*/
    	this.values = function (){
    		var _values= new Array(); 
    		for(var key in this.data){ 
    			_values.push(this.data[key]); 
    		} 
    		return _values; 
    	};
    	/**
    	* 获取keys
    	*/
    	this.keySet = function (){
    		var _keys = new Array(); 
    		for(var key in this.data){ 
    			_keys.push(key); 
    		} 
    		return _keys; 
    	};
    	/**
    	* 判断MAP中是否含有指定KEY的元素 
    	*/
    	this.containsKey = function(_key){ 
    		return (_key in this.data); 
    	}; 
    	/** 
    	* 清空Map 
    	*/ 
    	this.clear = function(){ 
    		this.data.length = 0;
    		this.data = new Object();
    	}; 
    }
    
    展开全文
  • JS实现Map集合的实现

    2022-08-18 16:45:06
    *//** 存放键的数组(遍历用到) *//** 存放数据 *//*** 放入一个键值对*/}};/*** 获取某键对应的值*/};.../*** 遍历Map,执行处理函数** @param {Function} 回调函数 function(key,value,index){..}*/return;}i...

    JS实现Map集合的实现(自定义对象)

    /**   
     * Simple Map   
     *    
     *    
     * var m = new Map();   
     * m.put('key','value');   
     * ...   
     * var s = "";   
     * m.each(function(key,value,index){   
     *      s += index+":"+ key+"="+value+"/n";   
     * });   
     * alert(s);   
     *    
     * @author dewitt   
     * @date 2008-05-24   
     */    
    function Map() {     
        /** 存放键的数组(遍历用到) */    
        this.keys = new Array();     
        /** 存放数据 */    
        this.data = new Object();     
    
        /**   
         * 放入一个键值对   
         * @param {String} key   
         * @param {Object} value   
         */    
        this.put = function(key, value) {     
            if(this.data[key] == null){     
                this.keys.push(key);     
            }     
            this.data[key] = value;     
        };     
    
        /**   
         * 获取某键对应的值   
         * @param {String} key   
         * @return {Object} value   
         */    
        this.get = function(key) {     
            return this.data[key];     
        };     
    
        /**   
         * 删除一个键值对   
         * @param {String} key   
         */    
        this.remove = function(key) {     
            this.keys.remove(key);     
            this.data[key] = null;     
        };     
    
        /**   
         * 遍历Map,执行处理函数   
         *    
         * @param {Function} 回调函数 function(key,value,index){..}   
         */    
        this.each = function(fn){     
            if(typeof fn != 'function'){     
                return;     
            }     
            var len = this.keys.length;     
            for(var i=0;i<len;i++){     
                var k = this.keys[i];     
                fn(k,this.data[k],i);     
            }     
        };     
    
        /**   
         * 获取键值数组(类似<a href="http://lib.csdn.net/base/java" class='replace_word' title="Java 知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>的entrySet())   
         * @return 键值对象{key,value}的数组   
         */    
        this.entrys = function() {     
            var len = this.keys.length;     
            var entrys = new Array(len);     
            for (var i = 0; i < len; i++) {     
                entrys[i] = {     
                    key : this.keys[i],     
                    value : this.data[i]     
                };     
            }     
            return entrys;     
        };     
    
        /**   
         * 判断Map是否为空   
         */    
        this.isEmpty = function() {     
            return this.keys.length == 0;     
        };     
    
        /**   
         * 获取键值对数量   
         */    
        this.size = function(){     
            return this.keys.length;     
        };     
    
        /**   
         * 重写toString    
         */    
        this.toString = function(){     
            var s = "{";     
            for(var i=0;i<this.keys.length;i++,s+=','){     
                var k = this.keys[i];     
                s += k+"="+this.data[k];     
            }     
            s+="}";     
            return s;     
        };     
    }     
    

    标记:记住要仰望星空,不要低头看脚下。无论生活如何艰难,请保持一颗好奇心。你总会找到自己的路和属于你的成功。——霍金《霍金演讲》

    展开全文
  • js 中的 map集合使用。

    1. Map 描述

    • Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者基本类型)都可以作为一个键或一个值。
    • 一个 Map 对象在迭代时会根据对象中元素的插入顺序来进行一个 for…of 循环在每次迭代后会返回一个形式为 [key,value] 的数组。

    2. 基本方法

    方法 / 属性说明
    new Map()创建新的 Map 对象。
    map.set ( key, value )为 Map 对象中的键设置值。
    map.get ( key )获取 Map 对象中键的值。
    map.keys()返回 Map 对象中键的数组。
    map.values()返回 Map 对象中值的数组。
    map.has()返回 Map 对象中是否存在某键。
    map.delete()删除某键
    map.clear()删除 Map 中的所有键。
    map.values()返回 Map 对象中值的数组。
    entries()返回一个新的包含 [key, value] 对的 Iterator 对象,返回的迭代器的迭代顺序与 Map 对象的插入顺序相同。
    size返回成员数量。

    3. 实例

    // 1. 创建Map集合
    let map = new Map() // Map(0) {size: 0}
    
    // 2. 设置键值
    map.set('apple',11) // Map(1) {'apple' => 11}
    map.set('pear',22) // Map(2) {'apple' => 11, 'pear' => 22}
    map.set('pear',33) // Map(2) {'apple' => 11, 'pear' => 33}
    
    // 3. 获取键值
    map.get('pear') // 33
    
    // 4. 获取所有的键、值
    map.keys() // MapIterator {'apple', 'pear'}
    map.values() // MapIterator {11, 33}
    
    // 5. 获取长度
    map.size // 2
    
    // 6. 判断键是否存在
    map.has('pear') // true
    map.has('dog') // false
    
    // 7. 删除某键
    map.delete('pear') // 输出Map: Map(1) {'apple' => 11}
    
    // 8. 清空Map集合
    map.set('dog', 22) // Map(2) {'apple' => 11, 'dog' => 22}
    map.clear() // 输出Map:Map(0) {size: 0}
    
    // 9. 按顺序输出
    map.set('cat',4) // Map(1) {'cat' => 4}
    map.set('pig',9) // Map(2) {'cat' => 4, 'pig' => 9}
    let mapIter = map.entries() 
    mapIter.next().value // ['cat', 4]
    mapIter.next().value // ['pig', 9]
    
    展开全文
  • js中的Map集合类型

    千次阅读 2021-08-31 00:25:56
    Map是一种新的集合类型,为ECMAScript语言带来了真正的键/值存储机制,Map的大多数特性都可以通过Obeject类型实现,但二者之间还是存在一些细微的差异。 6.4.1.基本API 使用new关键字和Map构造函数可以创建一个空...
  • js中如何自定义一个map集合

    千次阅读 2016-04-09 14:39:56
    //自定义map集合 function HashMap(){  this.map = {}; } HashMap.prototype = {  put : function(key , value){  this.map[key] = value;  },  get : function(key){  if(this.map.h
  • JavaScriptmap集合的存取

    千次阅读 2019-07-18 14:32:07
    存储键值对的数据可以用list和map,或者用数组也可以,当提到键值对的时候,作为初学者,我立马想到的是map,百度了一下jsmap的存储遍历,终于实现了自己想要的。 map 1、存储 var map={ };//先定义一个map,...
  • js中创建Map集合

    2021-03-09 04:30:26
    function Map() { //创建一个map集合//这里定义数据结构var struct = function(key, value) {this.key = key;this.value = value;}//这是添加的方法var put = function(key, value){for (var i = 0; i < this.arr...
  • 如何在JavaScript中创建一个map集合

    千次阅读 2018-01-16 10:03:55
    1.首先在js里创建一个getMap()函数 代码如下: function getMap() {// 初始化map_,给map_对象增加方法,使map_像Map var map_ = new Object(); map_.put = function(key, value) { map_[key + '_'] = value;...
  • java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。...而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。本文将着重介绍核心 Java 发行套件中附带的
  • ES6的map集合

    2022-01-08 12:40:25
    一、map集合 1、属性:size 2、基本方法 (1)set() (2)get() (3)has() (4)delete() (5)clear() 3、遍历方式 (1)keys() (2)values() (3)entries() (4)forEach() 4、转为数组 二、...
  • 为了更好的应对现实生产中的情况,我们还需要学习更多的数据类型:映射()和集合()。是一个键值对构成的集合,和对象非常相似,都是由一个名称对应一个值组成的。和对象区别在于,的键可以采用任何类型的数据,而...
  • 1.Map和Set集合 Set:无序不重复的集合 Set 可以去重 2.iterator 作用:使用iterator来遍历Map、Set 3.函数的定义和参数获取 3.1 定义一个函数 java中的格式:public 返回值类型 方法名(){ return 返回值;} 一旦...
  • js操作map集合按key排序

    万次阅读 2016-03-09 18:43:18
    现在要把集合中每个对象的属性为datas(map集合)的值。按Map中的key 从小到大的顺序排列。; ajax成功后的解析上面的数据-----------(Highchart中)--------- success : function(data) {   var ...
  • map集合&冒泡排序

    2022-02-22 16:48:02
    map集合&冒泡排序 能够说出Map集合特点 1.Map集合是一个双列集合,每个元素包含两个值,一个key一个value 2.Map集合中的key是不允许重复的,value可以重复 3.Map集合中一个key只能对应一个value值 4.Map集合中...
  • JavaScript映射map与迭代

    2021-03-22 13:41:13
    使用new关键字和Map构造函数可以创建一个空映射: const m = new Map(); 如果想在创建的同时初始化实例,可以给Map构造函数传入一个可迭代对象,需要包含键/值对数组。可迭代对象中的每个键/值对都会按照迭代顺序...
  • js 创建类似java map集合

    千次阅读 2018-07-19 10:08:42
    // Map map = new HashMap(); var map = {}; // map.put(key, value); map[key] = value; // Object value = map.get(key); var value = map[key]; // boolean has = map.containsKey(key); var has = key in.....
  • js Map用法

    千次阅读 2022-03-01 17:20:18
    作为 ECMAScript 6 的新增特性,Map 是一种新的集合类型,为这门语言带来了真正的键/值存储机制。Map 的大多数特性都可以通过 Object 类型实现,但二者之间还是存在一些细微的差异。具体实践中使用哪一个,还是值得...
  • 如何对Map集合进行自定义排序

    千次阅读 2020-08-21 10:18:31
    一、LinkedHashMap是有序的,但是只有两种顺序:插入...1.所有的Map集合都是用的方式 Map<String,Integer> map = new HashMap<>(); map.put("key1",1); map.put("key2",2); map.put("key3",3); //Linked
  • 一直以来,JavaScript使用数组和对象来定义和存放结构化数据, 在这篇文章中,我们将一起深挖另一种对象Map的一切,我们将会去了解它是什么、如何遍历、都包括什么属性和方法以及优缺点是什么。 介绍 JavaScript的...
  • 定义常量Map

    千次阅读 2019-03-23 16:20:15
    普通类型的常量可以这么定义,但是对于集合类型的常量,我们该怎么定义才好用呢? 本文就来讲一下常量Map定义,如有错误欢迎大家指点批评! 一、普通类型常量定义 举例如下: private staic final String ...
  • 最常用的集合类是 List 和 Map。List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。List 适用于按数值索引访问元素的情形。Map 提供了一个更通用的...
  • 特拉托里奥地图辅助函数集合,用于向Mapbox GL JS添加与Teritorio Map Style相关的某些功能。展示 :根据不同国家/地区的定义选择和切换边框的观点。 :通过自动检测浏览器语言或手动设置来选择和切换地图显示语言。...
  • jsmap集合

    2017-06-26 10:11:00
    // 定义map function DataMap() { this.container = {}; } // 将key-value放入map中 DataMap.prototype.put = function(key, value) { try { if (key != null && key != "") this.container[key] = value; }...
  • js-map,添加元素

    千次阅读 2022-03-07 00:49:07
    var map = {}; map["aa"] = "bb"; console.log(map) 结果 {"aa":"bb"}
  • ES6的集合 1、Set集合 2、WeakSet集合 3、Map集合
  • Map集合是双列集合,需要俩个范型,一个元素包含俩个值,一个key(不可重复),一个value。 HashMap HashMap底层是哈希表,HashMap集合是一个无序的集合,存取顺序不一致。 LinkedHashMap底层是哈希表+链表,可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,089
精华内容 22,435
关键字:

js定义map集合