本文给大家分享的是个人项目中需要的一个小功能,当时经过一番度娘才实现,现在从项目中拿出来,分享给大家,需要的小伙伴快来参考下吧。
前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下
大家不要见笑
代码
- var Map = function (){
- /************基础变量**************/
- var hashmap = {};
- var keys = [];
- var vals = [];
- var entrys = [];
- var size = 0;
- var index = {};
- var Entry = function(key,value){
- var entryKey = key;
- var entryValue = value;
- this.getKey = function (){
- return entryKey;
- };
- this.getValue = function(){
- return entryValue;
- };
- };
- /************基本方法 按字母排序**************/
- this.clear = function(key) {
- hashmap[key] = undefined;
- var i = index[key];
- entrys.splice(i,1);
- vals.splice(i,1);
- keys.splice(i,1);
- size --;
- };
- this.entrySet = function() {
- return entrys;
- };
- this.get = function(key){
- return hashmap[key];
- };
- this.isEmpty = function() {
- if(hashmap) return true;
- return false;
- };
- this.keySet = function() {
- return keys;
- };
- this.put = function(key,value){
- if(!this.get(key)){
- entrys.push(new Entry(key,value));
- keys.push(key);
- vals.push(value);
- index[key] = size;
- size ++;
- } else {
- var i = index[key];
- entrys[i] = new Entry(key,value);
- vals[i] = value;
- }
- hashmap[key] = value;
- };
- this.size = function() {
- return size;
- };
- this.values = function() {
- return vals;
- };
- };
- /************扩展方法**************/
- Map.prototype = {
- containsKey : function(key) {
- if(this.get(key)) return true;
- return false;
- },
- putAll : function(set) {
- for(var e in set){
- if(set[e]){
- this.put(e,set[e]);
- }
- }
- },
- remove : function(key) {
- var v = this.get(key);
- this.clear(key);
- return v;
- }
- };
- var h = new Map();
- h.put('a',10);
- h.put('b',11);
- h.put('c',3);
- h.put('d',5);
- console.info(h.size());
- h.clear('a');
- console.info(h.containsKey('a'));
- console.info(h.containsKey('b'));
- console.info(h.size());
- console.log(h.entrySet());
- console.log(h.keySet());
- console.log(h.values());
- for(var i in h.entrySet()){
- var obj = h.entrySet()[i];
- console.log(obj.getKey() + ":" + obj.getValue());
- }
|
以上所述就是本文的全部内容了,希望大家能够喜欢。
新闻热点
疑难解答
图片精选