ES6 新增的两种数据结构
都不接受重复的数据
Set 数据结构
类似于数组的数据结构
按照索引排列的而数据结构
- 创建 Set 数据结构
var s = new Set([数据1, 数据2, 数据3, 数据4...])
const oSet = new Set([1, 1, 2, 2, 3, 3, 4, 4, 5, 5])
- Set 数据结构的属性和方法
-
size 属性
数据结构.size
返回值:该数据结构内有多少个数据 -
add() 方法
数据结构.add(数据)
作用:向该数据结构内添加数据
oSet.add(10086)
console.log(oSet);
- has() 方法
数据结构.has(数据)
返回值:true——表示数据结构内有该数据;false——表示数据结构内没有该数据
console.log(oSet.has(5)); // true
- delete() 方法
数据结构.delete(数据)
作用:删除该数据结构内的某一个数据
oSet.delete(3)
console.log(oSet);
- clear() 方法
数据结构.clear()
作用:清除该数据结构内所有数据
oSet.clear()
- forEach() 方法
数据结构.forEach(function (value, key, origin) {})
oSet.forEach(function (item, index, origin) {
/**
*
* item 和 origin 和数组中 forEach 的含义是相同的
*
* 但是index不同,因为set中不允许使用下表获取到内部的数据
*
* 所以index的值不是下标,而是数组中的每一个值
*/
console.log('item', item);
console.log('index', index);
console.log('origin', origin);
})
Map 数据结构
类似于对象的数据结构, 但是他的 key 可以是任何数据类型
可以被叫做一个 值=值 的数据结构
- 创建 Set 数据结构
var s = new Map([ [key, value], [key, value] ])
const oMap = new Map()
- Set 数据结构的属性和方法
-
size 属性
数据结构.size
返回值:该数据结构内有多少个数据 -
set() 方法
数据结构.set(数据)
作用:向该数据结构内添加数据
// 不建议这么写,这么写和对象区别不大,建议写对象
oMap.set('key', 'value')
oMap.set('age', 18)
// map 数据中,key的值是没有被限制的,但是对象中,只能是字符串
const arr = [1, 2, 3]
// key , value
oMap.set(arr, [4, 5, 6])
- get() 方法
数据结构.get(key)
数据结构内该 key 对应的 value
console.log('$important!!!', oMap.get('age'));
console.log(oMap.get('name'));
- has() 方法
数据结构.has(数据)
返回值:true——表示数据结构内有该数据;false——表示数据结构内没有该数据
console.log(oMap.has('name')); // true
console.log(oMap.has(name)); // false
- delete() 方法
数据结构.delete(数据)
作用:删除该数据结构内的某一个数据
oMap.delete('key')
- clear() 方法
数据结构.clear()
作用:清除该数据结构内所有数据
oMap.clear()
- forEach() 方法
数据结构.forEach(function (value, key, origin) {})
oMap.forEach(function (value, key, origin) {
console.log('value', value);
console.log('key', key);
console.log('origin', origin);
})