Javascript数据结构set和map的用法总结

116 阅读1分钟

1. Set

ES6提供的新的数据结构类似数组,但成员的值唯一

创建set

//初始值为空
let set1 = new Set();
//利用数组初始化,重复的元素会自动去重
let arr = [1,2,2,3];
let set2 = new Set(arr);
let set3 = new Set([1,2,2,3]);
console.log([...set2]); //1,2,3

Set的属性和方法

  • .size: 返回Set成员的个数
  • add(value): 添加value值,返回set结构本身.
  • delete(value): 删除value值,返回布尔值,表示是否删除成功.
  • has(value): 判断是否存在value值,返回布尔值,表示是否存在.
  • clear(): 清空所有成员,无返回值

Set的遍历

  • keys(): 返回键名的遍历器
  • values(): 返回键值的遍历器(同keys)
  • entries(): 返回键值对的遍历器
  • forEach(): 遍历每个成员执行回调函数,无返回值

2. Map

map本质上是键值对的集合(hash结构)

创建Map

let map1 = new Map();
let map2 = new Map([['a',1],['b',2]]);
let map3 = new Map(map2);

Map的属性和方法

  • .size: 返回Map实例中成员的总数
  • set(key, value): 设置键名key对应的键值为value,若key不存在则生成新键,若存在则覆盖原先的值,该方法返回当前的Map对象
  • get(key): 读取key对应的键值,若不存在则返回undefined
  • has(key): 判断key是否存在,返回布尔值
  • delete(key): 删除key,删除成功返回true,删除失败返回false
  • clear(): 清楚所有成员,无返回值

Map遍历方法

  • keys(): 返回键名的遍历器
  • values(): 返回键值的遍历器
  • entries(): 返回键值对的遍历器
  • forEach(): 遍历每个成员,执行回调函数,无返回值