JavaScript自定義Map函式(IE8及以上相容)
阿新 • • 發佈:2021-06-24
/** * * 描述:js實現的map方法 * @returns {Map} */ function Map() { var struct = function(key, value) { this.key = key; this.value = value; }; // 新增map鍵值對 var put = function(key, value) { for (var i = 0; i < this.arr.length; i++) { if (this.arr[i].key === key) {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; }; var forEach = function(callback) { for (var i = 0; i < this.arr.length; i++) { callback(this.arr[i].value, this.arr[i].key); } } this.arr = new Array(); this.get = get; this.put = put; this.remove = remove; this.size = size; this.isEmpty = isEmpty; this.forEach = forEach; }