数据结构–字典

时间:2021-1-8 作者:admin

什么是字典

字典:字典存储的是键值对,主要的特征是一一对应,字典中的 key 是不能重复且无序的,value 可以重复。

ES6 中的 Map 就是一个字典结构。

字典常用的方法

  • has(key) 判断字典中是否存在这个 key
  • set(key, value) 在字典中添加键值对
  • remove(key) 从字典中删除 key
  • get(key) 获取指定 key 的 value 如果没有返回 undefined
  • keys() 获取所有的 keys
  • values() 获取所有的 values
  • size() 获取字典的键值对的个数
  • clear() 清除字典的所有数据

ES6 实现字典结构

  • 字典结构的封装
/** * 字典数据结构 * 特点: *  1. 字典主要存储的是键值对,主要的特点就是对值的一一对应 *  2. 字典的key是不能重复的并且是无序的,但是value可以有重复的 * * @class Map_ */class Map_ {  constructor() {    this.map = {};  }}
  • has(key) 方法的实现
  // has(key) 判断字典中是否存在这个key  has(key) {    return this.map.hasOwnProperty(key);  }
  • set(key, value) 方法的实现
  // set(key, value) 在字典中添加键值对  set(key, value) {    this.map[key] = value;  }
  • remove(key) 方法的实现
  // remove(key) 从字典中删除key  remove(key) {    if (!this.has(key)) return false;    delete this.map[key];  }
  • get(key) 方法的实现
 // get(key) 获取指定key的value 如果没有返回undefined  get(key) {    return this.has(key) ? this.map[key] : undefined;  }
  • keys() 方法的实现
  // keys() 获取所有的keys  keys() {    return Object.keys(this.map);  }
  • values() 方法的实现
  // values() 获取所有的values  values() {    return Object.values(this.map);  }
  • size() 方法的实现
  // size() 获取字典的键值对的个数  size() {    return this.keys().length;  }
  • clear() 方法的实现
  // clear() 清除字典的所有数据  clear() {    this.map = {};  }

字典结构的总体代码

/** * 字典数据结构 * 特点: *  1. 字典主要存储的是键值对,主要的特点就是对值的一一对应 *  2. 字典的key是不能重复的并且是无序的,但是value可以有重复的 * * @class Map_ */class Map_ {  constructor() {    this.map = {};  }  // has(key) 判断字典中是否存在这个key  has(key) {    return this.map.hasOwnProperty(key);  }  // set(key, value) 在字典中添加键值对  set(key, value) {    this.map[key] = value;  }  // remove(key) 从字典中删除key  remove(key) {    if (!this.has(key)) return false;    delete this.map[key];  }  // get(key) 获取指定key的value 如果没有返回undefined  get(key) {    return this.has(key) ? this.map[key] : undefined;  }  // keys() 获取所有的keys  keys() {    return Object.keys(this.map);  }  // values() 获取所有的values  values() {    return Object.values(this.map);  }  // size() 获取字典的键值对的个数  size() {    return this.keys().length;  }  // clear() 清除字典的所有数据  clear() {    this.map = {};  }}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。