ES6 的Map資料結構 底層原理模擬實現

2021-09-04 10:25:08 字數 1137 閱讀 7645

es6 的map資料結構 用鄰接鍊錶的底層原理來簡單模擬實現,不是用遍歷去查詢 這樣體現不出查詢快速的特點。就是給我們的資料分好類 然後再從同類中查詢,這裡我們用hash值來分類。

//定義乙個自己的mymap,執行初始化函式,在其原型鏈上寫

function mymap();

//這裡定義了存放的桶的個數,

mymap.prototype.len = 8;

//用來存放我們的kv

mymap.prototype.bucket = ;

//初始化函式 讓每個桶裡的初始next等於null

mymap.prototype.init = function (key);

} }//將傳入的key值轉換成hash值

mymap.prototype.makehash = function (key)

}else

return newhash; }

//set方法 有key值就覆蓋value 沒有就設定上

mymap.prototype.set = function (key,value)else

} //如果沒有next,則重新設定key,value;

if (nodenext.key === key) else ;

} //返回這個物件

return nodenext.next;

} //get方法 有key則返回value沒有則返回undefined

mymap.prototype.get = function (key)else

} return

} //has 方法 有key則返回true 無則false

mymap.prototype.has = function (key)else

} return false;

} //has 方法 刪除key成功則返回true 無則false

mymap.prototype.delete = function (key)else

} return false;

} //清空方法 直接執行初始化函式

mymap.prototype.clear = function ()

有什麼不足之處,請各位大牛指點

ES6之 Map資料結構

es6新增了 map資料結構,map物件儲存鍵值對,任何值 原始值或物件 都可以作為乙個鍵或乙個值。let map new map let obj map.set obj,myobject map.get obj myobject map.has obj true map.delete obj tr...

ES6 新增的Map資料結構

es6 新增的map資料結構 雖然網上很多講解 還是打算自己整理一下來加深印象 map可以接受陣列作為引數,陣列成員還是乙個陣列,其中有兩個元素,乙個表示鍵乙個表示值。const map2 new map name aissen age 12 map2 map2.size 2 map2.set ma...

ES6 資料結構)

一 set 用法 set 對陣列進行轉化 新增重複元素不會生效 應用 去重複功能 轉化過程不會有資料型別的轉換 新增 刪除 判斷是否存在的方法 讀取 遍歷 的幾種方法 二 weakset 與set的區別 1.weakset 的元素只能是物件 2.weakset 的物件是弱應用 不會檢測是否在其他中用...