
JavaScript数据结构与算法-字典练习
发布日期:2021-05-09 05:14:09
浏览次数:26
分类:博客文章
本文共 1492 字,大约阅读时间需要 4 分钟。
字典的实现
// 字典类function Dictionary () { this.add = add; this.dataStore = new Array(); this.find = find; this.remove = remove; this.showAll = showAll; this.count = count; this.clear = clear;}function add (key, value) { this.dataStore[key] = value;}function find (key) { return this.dataStore[key];}function remove (key) { delete this.dataStore[key];}function showAll () { let datakeys = Array.prototype.slice.call(Object.keys(this.dataStore)); for (let key in datakeys.sort()) { console.log(`${datakeys[key]} -> ${this.dataStore[datakeys[key]]}`); }}// 计数function count () { let n = 0; for (let key in Object.keys(this.dataStore)) { ++n; } return n;}// 清空function clear () { Object.keys(this.dataStore).forEach((key) => { delete this.dataStore[key]; }, this);}
练习
使用Dictionary类写一个程序,该程序用来存储一段文本中各个单词出现的次数。该程序显示每个单词出现的次数,但每个单词只显示一次。比如下面一段话“the brown fox jumped over the blue fox”,程序的输出应为:
- the: 2
- brown: 1
- fox: 2
- jumped: 1
- over: 1
- blue: 1
function showWordCount (word) { let d = new Dictionary(); let words = word.split(' '); for (let i = 0, max = words.length; i < max; ++i) { // 首次出现 if (typeof d.find(words[i]) === 'undefined') { d.add(words[i], 1); } else { ++d.dataStore[words[i]]; } } Object.keys(d.dataStore).forEach((key) => { console.log(`${key}: ${d.find(key)}`); }, this);}// 示例showWordCount('the brown fox jumped over the blue fox');
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月08日 23时21分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
中国剩余定理证明过程
2021-05-09
java中Object.equals()简单用法
2021-05-09
poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
2021-05-09
程序员的开发文档
2021-05-09
mybatis generator修改默认生成的sql模板
2021-05-09
算法 - 如何从股票买卖中,获得最大收益
2021-05-09
算法 - 链表操作思想 && case
2021-05-09
C#之反射、元数据详解
2021-05-09
通俗易懂设计模式解析——单例模式
2021-05-09
通俗易懂设计模式解析——抽象工厂模式
2021-05-09
前端数据渲染及mustache模板引擎的简单实现
2021-05-09
设计模式系列之工厂模式三兄弟(Factory Pattern)
2021-05-09
OAuth2.0认证详解
2021-05-09
Netflix是什么,与Spring Cloud有什么关系
2021-05-09
在滴滴和头条干了 2 年后端开发,太真实…
2021-05-09
你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!
2021-05-09
Linux中对用户操作
2021-05-09
Linux查看CUDA和cuDNN版本
2021-05-09
No.017:Letter Combinations of a Phone Number
2021-05-09
C#获取Excel中所有的Sheet名称
2021-05-09