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');

上一篇:JavaScript数据结构与算法-散列练习
下一篇:JavaScript数据结构与算法-链表练习

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月08日 23时21分54秒