前几天项目上想用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()); }
以上所述就是本文的全部内容了,希望大家能够喜欢。
标签:
javascript,map集合
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“javascript 实现map集合”评论...
更新动态
2024年11月15日
2024年11月15日
- 黄乙玲1988-无稳定的爱心肝乱糟糟[日本东芝1M版][WAV+CUE]
- 群星《我们的歌第六季 第3期》[320K/MP3][70.68MB]
- 群星《我们的歌第六季 第3期》[FLAC/分轨][369.48MB]
- 群星《燃!沙排少女 影视原声带》[320K/MP3][175.61MB]
- 乱斗海盗瞎6胜卡组推荐一览 深暗领域乱斗海盗瞎卡组分享
- 炉石传说乱斗6胜卡组分享一览 深暗领域乱斗6胜卡组代码推荐
- 炉石传说乱斗本周卡组合集 乱斗模式卡组最新推荐
- 佟妍.2015-七窍玲珑心【万马旦】【WAV+CUE】
- 叶振棠陈晓慧.1986-龙的心·俘虏你(2006复黑限量版)【永恒】【WAV+CUE】
- 陈慧琳.1998-爱我不爱(国)【福茂】【WAV+CUE】
- 咪咕快游豪礼放送,百元京东卡、海量欢乐豆就在咪咕咪粉节!
- 双11百吋大屏焕新“热”,海信AI画质电视成最大赢家
- 海信电视E8N Ultra:真正的百吋,不止是大!
- 曾庆瑜1990-曾庆瑜历年精选[派森][WAV+CUE]
- 叶玉卿1999-深情之选[飞图][WAV+CUE]