網(wǎng)上的相關(guān)教程非常多,基礎(chǔ)知識(shí)自行搜索即可。
習(xí)題主要選自O(shè)relly出版的《數(shù)據(jù)結(jié)構(gòu)與算法javascript描述》一書。
參考代碼可見:https://github.com/dashnowords/blogs/tree/master/Structure/Dictionary
以鍵值對(duì)
形式存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),在Javascript
中更多地是直接使用對(duì)象,一般只在有排序需求的場(chǎng)景下會(huì)用到本篇中構(gòu)造的Dictionary
類,因?yàn)閷?duì)象屬性是無序的。
字典
在Javascript中是非常常用的技術(shù)之一,一般會(huì)和設(shè)計(jì)模式中的策略模式
一起被提及。策略模式指的是定義一系列的算法,把它們一個(gè)個(gè)封裝起來。將不變的部分和變化的部分隔開是每個(gè)設(shè)計(jì)模式的主題,策略模式也不例外,策略模式的目的就是將算法的使用與算法的實(shí)現(xiàn)分離開來。例如下面一段計(jì)算薪水和獎(jiǎng)金的示例:
var obj = {
"A": function(salary) {
return salary * 4;
},
"B" : function(salary) {
return salary * 3;
},
"C" : function(salary) {
return salary * 2;
}
};
var calculateBouns =function(level,salary) {
return obj[level](salary);
};
console.log(calculateBouns('A',10000)); // 40000
構(gòu)造一個(gè)Dictionary
類。實(shí)現(xiàn)下列基本方法
add(key, value)
——添加一條記錄find(key)
——查找指定鍵對(duì)應(yīng)的值remove(key)
——移除指定鍵值對(duì)showAll( )
——顯示所有鍵值對(duì)clear( )
——清空數(shù)據(jù)Dictionary
類寫一個(gè)程序,用來統(tǒng)計(jì)一段文本中各個(gè)單詞出現(xiàn)的次數(shù)。例如,"the brown for jumped over the blue fox",對(duì)應(yīng)的輸出為:the:2
brown:1
fox:2
jumped:1
over:1
blue:1
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。