野生前端的数据结构基础练习(4)——字典-创新互联
创新互联建站始终致力于在企业网站建设领域发展。秉承“创新、求实、诚信、拼搏”的企业精神,致力为企业提供全面的网络宣传与技术应用整体策划方案,为企业提供包括“网站建设、响应式网站设计、手机网站建设、微信网站建设、小程序定制开发、电子商务商城网站建设、平台网站建设秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
名称栏目:野生前端的数据结构基础练习(4)——字典-创新互联
网页路径:http://pwwzsj.com/article/eppoj.html
网上的相关教程非常多,基础知识自行搜索即可。
习题主要选自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,使单词按字母顺序显示。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:野生前端的数据结构基础练习(4)——字典-创新互联
网页路径:http://pwwzsj.com/article/eppoj.html