網上的相關教程非常多,基礎知識自行搜索即可。 習題主要選自Orelly出版的《數據結構與演算法javascript描述》一書。 參考代碼可見: "https://github.com/dashnowords/blogs/tree/master/Structure/Dictionary" 字典的基本知識 ...
網上的相關教程非常多,基礎知識自行搜索即可。
習題主要選自Orelly出版的《數據結構與演算法javascript描述》一書。
參考代碼可見:https://github.com/dashnowords/blogs/tree/master/Structure/Dictionary
字典的基本知識
以鍵值對
形式存儲數據的數據結構,在Javascript
中更多地是直接使用對象,一般只在有排序需求的場景下會用到本篇中構造的Dictionary
類,因為對象屬性是無序的。
字典的應用
字典
在Javascript中是非常常用的技術之一,一般會和設計模式中的策略模式
一起被提及。策略模式指的是定義一系列的演算法,把它們一個個封裝起來。將不變的部分和變化的部分隔開是每個設計模式的主題,策略模式也不例外,策略模式的目的就是將演算法的使用與演算法的實現分離開來。例如下麵一段計算薪水和獎金的示例:
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
基本練習
構造一個Dictionary
類。實現下列基本方法
add(key, value)
——添加一條記錄find(key)
——查找指定鍵對應的值remove(key)
——移除指定鍵值對showAll( )
——顯示所有鍵值對clear( )
——清空數據
課後習題(書中第七節習題)
- 寫一個程式,該程式從文本讀入名字和電話號碼,然後將其存入一個字典,程式包含如下功能:顯示單個電話號碼,顯示所有電話號碼,增加新的電話號,刪除電話,清空所有電話。
- 使用
Dictionary
類寫一個程式,用來統計一段文本中各個單詞出現的次數。例如,"the brown for jumped over the blue fox",對應的輸出為:
the:2
brown:1
fox:2
jumped:1
over:1
blue:1
- 修改練習2,使單詞按字母順序顯示。