字典
一種以key-value形式存儲數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)兔毒。
實現(xiàn):
class Dictionary {
constructor() {
this.elements = []
}
// 字典中元素個數(shù)
get length() {
return Object.keys(this.elements).length
}
// 查找元素
find(key) {
return this.elements[key]
}
// 添加元素
add(key, val) {
this.elements[key] = val
}
// 移除元素
remove(key) {
delete this.elements[key]
}
// 清空字典
clear() {
this.elements = []
}
// 展示字典中的所有鍵值對
display() {
// 按字典順序顯示所有元素
for (let key of Object.keys(this.elements).sort()) {
console.log(key + ' -> ' + this.elements[key])
}
}
}
示例:按字母順序顯示來一段文本中各個單詞出現(xiàn)的次數(shù)
function wordCount(s) {
const words = s.split(' ')
var d = new Dictionary()
words.forEach(item => {
if (d.find(item)) {
d.add(item, d.find(item) + 1)
} else {
d.add(item, 1)
}
})
d.display()
}
// test
wordCount('the brown fox jumped over the blue fox') // blue -> 1 brown -> 1 fox -> 2 jumped -> 1 over -> 1 the -> 2