定义

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

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

  1. class Dictionary {
  2. constructor() {
  3. this.items = {};
  4. }
  5. // 添加一个存储键值对
  6. set(key, value) {
  7. this.items[key] = value;
  8. }
  9. // 根据key返回一个item
  10. get(key) {
  11. return this.items.hasOwnProperty(key) ? this.items[key] : undefined;
  12. }
  13. // 删除一个存储键值对
  14. remove(key) {
  15. if (this.items.hasOwnProperty(key)) {
  16. delete this.items[key];
  17. }
  18. }
  19. // 返回字典中 key
  20. get keys() {
  21. return Object.keys(this.items);
  22. }
  23. // 返回字典中 value
  24. get values() {
  25. return Object.keys(this.items).reduce((r, c, i) => {
  26. r.push(this.items[c]);
  27. return r;
  28. }, []);
  29. }
  30. }
  31. const dictionary = new Dictionary();
  32. dictionary.set("zhangsan", "zhangsan@email.com");
  33. dictionary.set("lisi", "lisi@email.com");
  34. dictionary.set("zhaowu", "zhaowu@email.com");
  35. console.log(dictionary);
  36. console.log(dictionary.keys);
  37. console.log(dictionary.values);
  38. console.log(dictionary.items);
  39. console.log("------------------------");
  40. dictionary.remove("zhaowu");
  41. console.log(dictionary.get("zhaowu"));