ES6数据集合 set 和 map

邢走在云端

set

set 类似于数组,没有重复的元素,开发中可用于去重操作,它的key和value相等

初始化一个set集合

let set = new Set([1,2,3,4,4]);
console.log(set); // Set { 1, 2, 3, 4 } 
  • 一个属性

    size

    返回集合的长度(去重后的长度)
    console.log(set.size) // 4
  • 四个方法

    • add()

      添加一个元素
      set.add('小明')
      链式添加多个元素
      set.add('小明').add('小华')
    • delete()

      删除一个元素
      set.delete('小明')
  • has()

    判断set集合中是否存在该元素 返回true/false
    set.has('小明');
  • clear()

    清除set集合中的所有元素
    set.clear()
    没有返回值
    console.log(set.clear())  // undefined

map

map类似于对象,本质上是键值对的集合。字符串、对象都可以当作键

初始化一个map集合

let map = new Map(
  [
    ['name', '张三'],
    ['age', 14],
    ['age', 12],
  ]
)
可以去重,上述代码中的age将被覆盖成12

注意事项:

去重只针对于map集合的键是基本数据类型。对于Object这种复杂的数据类型不去重

let map = new Map(
  [
    ['name', '张三'],
    ['age', 14],
    ['age', 12],
    [{}, '123'],
    [{}, '456'],
  ]
)
  • 属性

    • size (去重后的长度)
    console.log(map.size) 
  • 一些方法

    • set()

      设置键值对
      map.set('height', 1.78)
    • get()

      通过键名获取元素
      console.log(map.get('height')); // 1.78
    • delete()

      删除一个键值对
      map.delete('height')
    • has()

      判断是否有该键值
      console.log(map.has('height'));
    • clear()

      清除map集合中的数据
      map.clear()
    • keys(), values(), entries()

      console.log(map.keys()); // [Map Iterator] { 'name', 'age' }
      console.log(map.values()); // [Map Iterator] { '张三', 12 }
      console.log(map.entries()); // [Map Iterator] { [ 'name', '张三' ], [ 'age', 12 ] }

对map进行遍历

 map.forEach((value, index) => {
   console.log(value);
   console.log(index);
 })
阅读 1.1k

前端学习
个人学习专栏,记录自己的前端学习

每天跑步五公里

281 声望
24 粉丝
0 条评论

每天跑步五公里

281 声望
24 粉丝
文章目录
宣传栏