摘要:一構造字典數據結構我們將使用實現字典結構,各部分功能使用注釋說明。參考資料數據結構與算法描述第章字典由于書上的源代碼出現了錯誤,因此代碼根據實際運行結果做了相應修改。
前言
字典是一種以鍵-值對形式存儲數據的數據結構,如同手機通訊錄中,想要尋找一個電話時,只要找到名字就可以找到其電話號碼。
JavaScript的Object類就是以字典的形式設計的。這里將使用Object類的特性,實現一個Dictionary類,讓字典類型的對象使用起來更加簡單。
我們將使用JavaScript實現字典結構,各部分功能使用注釋說明。
/** * Dictionary 構造方法 * datastore 存儲數據 */ function Dictionary () { this.datastore = new Array() this.add = add this.find = find this.remove = remove this.showAll = showAll this.count = count this.clear = clear this.showAllBySort = showAllBySort } /** * add() 方法進行添加數據 * @param {*} key * @param {*} value */ function add (key, value) { this.datastore[key] = value } /** * find() 方法進行查找key值對應的value * @param {*} key */ function find (key) { return this.datastore[key] } /** * remove() 方法進行刪除對應的key值鍵值對 * @param {*} key */ function remove(key) { delete this.datastore[key] } /** * showAll() 方法進行遍歷顯示所有的key、value */ function showAll () { let datakeys = Array.prototype.slice.call(Object.keys(this.datastore)) for (let key in datakeys) { console.log(datakeys[key] + " -> " + this.datastore[datakeys[key]]) } } /** * showAllBySort() 方法進行遍歷顯示所有排序后的key、value */ function showAllBySort () { let datakeys = Array.prototype.slice.call(Object.keys(this.datastore)).sort() for (let key in datakeys) { console.log(datakeys[key] + " -> " + this.datastore[datakeys[key]]) } }
其中有幾點個人認為需要強調:
我們想要刪除鍵-值對時需要使用JavaScript中的內置函數——delete。該函數使用對鍵的引用作為參數,同時刪除鍵與其關聯的值。
我們使用Object類的keys()方法可以返回傳入參數中存儲的所有鍵。(Object.keys()與for...in循環的區別主要在于for...in循環會枚舉其原型鏈上的屬性)
slice()方法是從已有的數組中返回選定的元素
當我們在計算字典中元素的個數時,并沒有直接使用length方法,因為當鍵的類型為字符串時,length屬性無法使用
結束語使用JavaScript實現字典數據結構相對來說難度不大,但我們需要注意其中的一些細節部分。
參考資料:數據結構與算法JavaScript描述 第7章 字典
由于書上的源代碼出現了錯誤,因此代碼根據實際運行結果做了相應修改。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107986.html
摘要:元組是靜態數組,它們不可變,且其內部數據一旦創建便無法改變。元組緩存于運行時環境,這意味著我們每次使用元組時無須訪問內核去分配內存。 以下是整理的JavaScript和python的基礎區別的整理: 字符串、列表、元組、字典、集合、函數 字符串 聲明一個字符串 python str = 123 str = 123 Tips: 如果是三個引號的話,那么在py中就是注釋的意思 ...
摘要:元組是靜態數組,它們不可變,且其內部數據一旦創建便無法改變。元組緩存于運行時環境,這意味著我們每次使用元組時無須訪問內核去分配內存。 以下是整理的JavaScript和python的基礎區別的整理: 字符串、列表、元組、字典、集合、函數 字符串 聲明一個字符串 python str = 123 str = 123 Tips: 如果是三個引號的話,那么在py中就是注釋的意思 ...
摘要:下列將筆者涉獵到的與前端相關的數據結構案例作如下總結數據結構案例棧其它數據結構的基礎,中間件機制隊列其它數據結構的基礎鏈表中的的優化集合對應中的字典對應中的哈希表一種特殊的字典,可以用來存儲加密數據樹圖暫時沒遇到,不過里面的蠻常見 showImg(https://segmentfault.com/img/remote/1460000016060996?w=640&h=280); 常見數...
摘要:大學,光學工程研究生畢業,和程序猿完全不搭邊。那怎么辦,試著學一學唄,學習才是程序猿的天性。所以我在想程序猿是不是都需要新知識刺激一下,才能保持興奮的頭腦。有句話說的很對程序猿就像好奇的貓,追著毛球的線頭玩,最后一個毛球在腦袋里攪漿糊。 說說我自己的經歷。211大學,光學工程研究生畢業,和程序猿完全不搭邊。 畢業后進了成都某國字頭研究所,在行業里摸爬滾打了四年,2018年機緣巧合在家養...
閱讀 2671·2023-04-26 00:42
閱讀 2817·2021-09-24 10:34
閱讀 3832·2021-09-24 09:48
閱讀 4167·2021-09-03 10:28
閱讀 2587·2019-08-30 15:56
閱讀 2783·2019-08-30 15:55
閱讀 3274·2019-08-29 12:46
閱讀 2254·2019-08-28 17:52