SET 和 MAP 数据结构
+ 两个是 ES6 出现的两种数据结构
+ SET 就是一个类似于 数组 的数据结构
+ MAP 就是一个类似于 对象 的数据结构
SET 数据结构
+ 是一个类似于 数组 的数据结构
+ 创建数据的语法
1. 内置构造函数创建
=> var s1 = new Set()
+ 创建的时候可以直接向小括号里面添加数据
=> var s1 = new Set([1, 2, 3, true, 'hello world', '你好世界', function () {}, ...])
+ 为什么是一个类似于数组一样的数据, 还要写一个数组
=> 直接写数组不好吗 ?
=> 他虽然是按照数组传递参数
=> 他有一个特点, 不接受重复数据
-> 如果你的数组里面有了重复的数据
-> 会直接干掉
+ 自己的方法和属性
1. size 属性 -> 表示数据结构里面有多少数据
=> 在数组里面使用 length
=> 在 SET 数据结构里面使用 size
2. add() 方法 -> 向该数据集合里面添加数据使用
=> 添加重复数据的时候不会添加成功
=> 语法: 该数据结构.add(要添加的内容)
3. delete() 方法 -> 用来删除数据结构里面的某个数据
=> 语法: 该数据结构.delete(要删除的数据)
4. clear() 方法 -> 用来清除数据结构中的所有数据
=> 语法: 该数据结构.clear()
5. has() 方法 -> 用来判断该数据结构里面有没有某个数据
=> 语法: 该数据结构.has(你要判断的数据)
=> 返回值:
-> true: 表示有
-> false: 表示没有
6. forEach() 方法 -> 用来遍历该数据结构
=> 注意: 这个 forEach 不是数组常用方法, 是 Set 自己的方法
=> 语法: 该数据结构.forEach(function () {})
7. ... 运算符 -> 把数据结构还原成一个数组
=> 和 Array.from() 一样的功能
=> 语法: ...该数据结构
=> 还原成一个数组
作用: 数组去重
+ 因为它可以把一个数组里面的重复数据都干掉
+ 因为它不接受重复数据
+ ... 还可以还原成一个数组
MAP 数据结构
+ 是一个类似于 对象 的数据结构
=> 对象里面的 key 只能是 string 数据类型
=> Map 数据结构里面的 key 可以是复杂数据类型
=> 我们又管 Map 数据结构叫做 值=值 的数据结构
=> 不接受重复数据
+ 创建
1. 内置构造函数创建
=> var m1 = new Map()
+ 创建的时候直接写入一些数据
=> 写入需要写成一个二维数组的形式
=> var m1 = new Map([ [ 每一项的 key, 每一项的 value ], [ key, value ] ])
+ 常用方法和属性
1. size 属性 -> 用来获取该数据结构的长度
2. set() 方法 -> 用来向该数据结构里面添加成员的
=> 语法: 该数据结构.set(key, value)
=> 这个 set 是 Map 数据结构的方法 set
-> 不是 Set 数据结构
-> new Set([])
3. get() 方法 -> 用来获取数据结构里面某一个成员的
=> 语法: 该数据结构.get(你要获取的key)
=> 返回值: 你获取这个 key 的 value
4. delete() 方法 -> 用来删除数据结构里面的数据的
=> 语法: 该数据结构.delete(你要删除的key)
5. clear() 方法 -> 用来清除该数据结构的所有数据
=> 语法: 该数据结构.clear()
6. has() 方法 -> 用来检测有没有某个数据的
=> 语法: 该数据结构.has(你要检测的 key)
=> 返回值:
-> true: 表示有
-> false: 表示没有
7. forEach() 方法 -> 用来遍历该数据结构的
=> 使用的不是数组常用方法, 是自己的
=> 语法: 该数据结构.forEach(function () {})
8. ... 运算符 -> 还原成一个数组
=> 还原成一个 二维数组的样子
=> 语法: [...该数据结构]
=> 里面每一个小数组都有两个成员
-> [0] 就是数据结构里面的 key
-> [1] 就是数据结构里面的 value