1. 程式人生 > 其它 >JavaScript自定義Map函式(IE8及以上相容)

JavaScript自定義Map函式(IE8及以上相容)

/** 
 *  
 * 描述: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; }