Skip to content

定义

一种以键-值对形式存储数据的数据结构。如:名字-电话号码,通过名字就能找到对应的电话号码,名字就是键(key),电话号就是值(value)。

字典中的键,是值在字典中的索引。

javascript
class Dictionary {
  constructor() {
    this.items = {}
  }

  // 添加一个存储键值对
  set(key, value) {
    this.items[key] = value
  }

  // 根据key返回一个item
  get(key) {
    return this.items.hasOwnProperty(key) ? this.items[key] : undefined
  }

  // 删除一个存储键值对
  remove(key) {
    if (this.items.hasOwnProperty(key)) {
      delete this.items[key]
    }
  }

  // 返回字典中 key
  get keys() {
    return Object.keys(this.items)
  }

  // 返回字典中 value
  get values() {
    return Object.keys(this.items).reduce((r, c, i) => {
      r.push(this.items[c])
      return r
    }, [])
  }
}
const dictionary = new Dictionary()
dictionary.set('zhangsan', 'zhangsan@email.com')
dictionary.set('lisi', 'lisi@email.com')
dictionary.set('zhaowu', 'zhaowu@email.com')

console.log(dictionary)
console.log(dictionary.keys)
console.log(dictionary.values)
console.log(dictionary.items)

console.log('------------------------')
dictionary.remove('zhaowu')
console.log(dictionary.get('zhaowu'))