javascript實現Map結構
//定義map function Map() { this.container = {};}//將key-value放入map中 Map.prototype.put = function(key, value) { try { if (key != null){ this.container[key] = value; } } catch (e) { return e; }};//根據key從map中取出對應的value Map.prototype.get = function(key,deft) { if(!this.containsKey(key)){ return deft; } try { return this.container[key]; } catch (e) { return e; }};//判斷map中是否包含指定的key Map.prototype.containsKey = function(key) { try { for ( var p in this.container) { if (p == key) return true; } return false; } catch (e) { return e; }}//判斷map中是否包含指定的value Map.prototype.containsValue = function(value) { try { for ( var p in this.container) { if (this.container[p] === value) return true; } return false; } catch (e) { return e; }};//刪除map中指定的key Map.prototype.remove = function(key) { try { delete this.container[key]; } catch (e) { return e; }};//清空map Map.prototype.clear = function() { try { delete this.container; this.container = {}; } catch (e) { return e; }};//判斷map是否為空 Map.prototype.isEmpty = function() { if (this.keySet().length == 0) return true; else return false;};//獲取map的大小 Map.prototype.size = function() { return this.keySet().length;}//返回map中的key值陣列 Map.prototype.keySet = function() { var keys = new Array(); for ( var p in this.container) { keys.push(p); } return keys;}//遍歷MapMap.prototype.each = function(fun){ var keys = this.keySet(); for(var i = 0;i < keys.length;i++){ fun(keys[i],this.get(keys[i])); }}//返回map中的values值陣列 Map.prototype.values = function() { var valuesArray = new Array(); var keys = this.keySet(); for (var i = 0; i < keys.length; i++) { valuesArray.push(this.container[keys[i]]); } return valuesArray;}//獲取Map的最大值,引數為比較函式Map.prototype.max = function(compare){ var keys = this.keySet(); var maxKey = keys[0],maxValue = this.get(keys[0]); for(var i = 0;i < keys.length;i++){ if(compare(this.get(keys[i],maxValue))){ maxValue = this.get(keys[i]); maxKey = keys[i]; } } return [maxKey,maxValue];}//返回 map 中的 entrySet 物件Map.prototype.entrySet = function() { var array = new Array(); var keys = this.keySet(); for (var i = 0; i < keys.length; i++) { array.push(keys[i],this.container[keys[i]]); } return array;}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4650/viewspace-2816681/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript --- Map集合結構詳解JavaScript
- JavaScript — Map集合結構詳解JavaScript
- JavaScript資料結構——圖的實現JavaScript資料結構
- Map 資料結構資料結構
- JavaScript資料結構——集合的實現與應用JavaScript資料結構
- JavaScript資料結構——字典和雜湊表的實現JavaScript資料結構
- 現代 JavaScript 教程 — 程式碼結構JavaScript
- JavaScript map()JavaScript
- Set和Map資料結構。資料結構
- js資料結構--字典(map)JS資料結構
- golang map的底層結構Golang
- 演算法思維體操:用JavaScript和Python自己實現reduceRight和map(連結串列)演算法JavaScriptPython
- JavaScript map()方法JavaScript
- ES6 Map 資料結構資料結構
- 【Go進階—資料結構】mapGo資料結構
- 用whistle實現map local
- ECMAScript-新的資料結構Map資料結構
- ES6之Map資料結構資料結構
- Redis基礎資料結構之MapRedis資料結構
- go中map的資料結構理解Go資料結構
- Java實現資料結構之線性結構Java資料結構
- JavaScript Array map() 方法JavaScript
- JavaScript Map與WeakMapJavaScript
- javascript 有map嗎JavaScript
- javascript實現雙向資料繫結JavaScript
- Stata實現結構方程模型模型
- 樹結構與Java實現Java
- javascript 詞法結構小結JavaScript
- JavaScript分支結構(判斷結構)使用教程JavaScript
- JavaScript中的程式結構和分支結構JavaScript
- Golang Map實現(四) map 的賦值和擴容Golang賦值
- Java常用資料結構之Map-HashMapJava資料結構HashMap
- Golang操作結構體、Map轉化為JSONGolang結構體JSON
- 理解 Golang 的 map 資料結構設計Golang資料結構
- (精華)2020年7月3日 JavaScript高階篇 ES6(Map資料結構)JavaScript資料結構
- Java中實現不可變MapJava
- 解碼 xsync 的 map 實現
- GO 中 map 的實現原理Go