JavaScript数据结构与算法-字典练习

字典的实现

// 字典类
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数据结构与算法-字典练习

转载于:https://www.cnblogs.com/mazey/p/8322374.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值