摘要:我對字典的簡單學(xué)習(xí)字典的概念集合字典和散列表都可以來存儲不重復(fù)的值。字典也被稱為映射。中有集合類的實現(xiàn),也有字典類的實現(xiàn)。相關(guān)操作方法實現(xiàn)方法,判斷某個鍵值是否在這個字典中,有則返回。實現(xiàn)方法,將字典所有的值以數(shù)組的形式返回。
我對JS字典的簡單學(xué)習(xí) 字典的概念
集合、字典和散列表都可以來存儲不重復(fù)的值。
在集合中我們使用[值,值]來保存,在字典和散列表中使用[鍵,值]來存儲數(shù)據(jù)。
字典也被稱為映射。
ES6中有集合Set類的實現(xiàn),也有字典Map類的實現(xiàn)。
function Dictionary() { var items = {}; }相關(guān)操作方法
實現(xiàn)has(key)方法,判斷某個鍵值是否在這個字典中,有則返回true。
this.has = function(key) { return key in items; }
實現(xiàn)set(key, value)方法,向字典中添加新元素。
this.set = function(key, value) { items[key] = value; }
實現(xiàn)remove(key)方法,從字典中移除鍵值對應(yīng)的數(shù)據(jù)值。
this.remove = function(key) { if(this.has(key)) { delete items[key]; return true; } return false; }
實現(xiàn)get(key)方法,查找特定的值。
this.get = function(key) { return this.has(key) ? items[key] : undefined; }
引申:undefined和null不一樣,null表示變量沒有值,undefined表示變量被聲明但未賦值。
實現(xiàn)values()方法,將字典所有的值以數(shù)組的形式返回。
this.values = function() { var values = []; for(var k in items) { if(this.hasOwnProperty(k)) { values.push(items[key]); } } return values; }
clear(),size(),keys()方法與Set類一致,這里不討論了。
實現(xiàn)getItems()方法
this.getItems = function() { return items; }使用Dictionary類
創(chuàng)建一個類的實例,然后給它添加三條電子郵件地址。
var dictionary = new Dictionary(); dictionary.set("Gandalf", "[email protected]"); dictionary.set("John", "[email protected]"); dictionary.set("Tyrion", "[email protected]");
使用方法
console.log(dictionary.has("Gandalf")); //true console.log(dictionary.size()); //3 console.log(dictionary.keys()); //["Gandalf", "John", "Tyrion"]; console.log(dictionary.values()); //["[email protected]", [email protected]", "[email protected]"] console.log(dictionary.get("Tyrion")); //[email protected]
執(zhí)行以下代碼
dictionary.remove("John"); console.log(dictionary.keys()); //["Gandalf", "Tyrion"] console.log(dictionary.values()); //["[email protected]", "[email protected]"] console.log(dictionary.getItems()); //{Gandalf: "[email protected]", Tyrion: "[email protected]"}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82362.html
摘要:一向量字典樹字典樹,一種用空間換取時間的樹形數(shù)據(jù)結(jié)構(gòu),主要特點是利用字符串的公共前綴來挺升查詢性能。還有最終的數(shù)組表示的真實存儲的鍵值,存儲了,存儲了。這其中還有一種節(jié)點進行了沖突的處理。 本文受深入探究Immutable.js的實現(xiàn)機制這篇文章啟發(fā),結(jié)合自己對Map源碼的解讀,談?wù)勎覍mmutable-js中map數(shù)據(jù)結(jié)構(gòu)的理解,若有不正確的地方,歡迎指正。 一、Vector Tr...
摘要:我對棧的學(xué)習(xí)因為是個新手,所以都是最簡單的知識學(xué)習(xí)梳理。棧是一種遵從后進先出原則的有序集合,新添加的或者待刪除的元素都保留在棧的末尾,稱作棧頂,另一端叫做棧底。棧的學(xué)習(xí)棧的創(chuàng)建創(chuàng)建一個類來表示棧。對于棧來說只能用和方法來進行添加和刪除元素。 我對棧的學(xué)習(xí) 因為是個新手,所以都是最簡單的知識學(xué)習(xí)梳理。 什么是棧 數(shù)組是計算機科學(xué)中最常用的數(shù)據(jù)結(jié)構(gòu),是數(shù)據(jù)元素的集合。有時候我們需要一種添加...
摘要:我對鏈表的學(xué)習(xí)什么是鏈表要存儲多個元素,數(shù)組可能是最常用的數(shù)據(jù)結(jié)構(gòu)。鏈表的學(xué)習(xí)創(chuàng)建一個鏈表各種方法表示要加入列表的項,它包含一個屬性以及一個屬性,表示要添加到列表的值,表示指向列表下一個節(jié)點項的指針。 我對JS鏈表的學(xué)習(xí) 什么是鏈表 要存儲多個元素,數(shù)組可能是最常用的數(shù)據(jù)結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)非常方便,但是有一個缺點:從數(shù)組的起點或者中間插入或移除項的成本非常高,因為需要移動元素(比如你插...
摘要:我對集合的學(xué)習(xí)第一步知道相關(guān)概念集合是由一組無序且唯一的項組成的,在中已經(jīng)實現(xiàn)了類似的類。就是集合第二步實現(xiàn)相關(guān)操作方法首先實現(xiàn)方法,判斷值是否在集合中,返回布爾值。操作符還有另外一種實現(xiàn)方法,方法返回表明一個對象是否具有特定屬性的布爾值。 我對集合的學(xué)習(xí) 第一步知道相關(guān)概念 集合是由一組無序且唯一的項組成的,在ES6中已經(jīng)實現(xiàn)了類似的Set類。 function Set() { ...
摘要:但是實際寫程序中,我們經(jīng)常會寫出許多繁雜的丑陋的代碼。特別推薦,許多代碼讓我獲益匪淺,比如這里對的使用。用可以寫出很簡單直觀的代碼,如下當然,上面不考慮效率,這里有一個利用分治法思想的高效的方法。更多文章更多閱讀中參數(shù)的用法高級編程技巧 用 Python 時間也算不短了,但總感覺自己在用寫 C++ 代碼的思維寫 Python,沒有真正用到其作為腳本語言的優(yōu)勢。之前刷 LeetCode ...
閱讀 871·2021-11-24 09:38
閱讀 1098·2021-10-08 10:05
閱讀 2593·2021-09-10 11:21
閱讀 2809·2019-08-30 15:53
閱讀 1838·2019-08-30 15:52
閱讀 1979·2019-08-29 12:17
閱讀 3428·2019-08-29 11:21
閱讀 1619·2019-08-26 12:17