在ES6中新增了另外两种数据结构:Set 和Map ,以及它们的另外形式WeakSet、WeakMap
set数据结构
Set是新增的数据结构,可以用来保存数据,类似于数组,但是和数组的区别是元素不能重复
创建Set我们需要通过Set构造函数(暂时没有字面量创建方式)
应用场景:数组去重
set去重
// 应用场景:数组去重
const names = ["html","css","vue","nodejs","webpack","html","css"]
const set = new Set(names)
console.log(Array.from(set))
原生去重
const names = ["html","css","vue","nodejs","webpack","html","css"]
const newArray = []
for(let item of names) {
if(!newArray.includes(item)) {
newArray.push(item)
}
}
console.log(newArray)
set常见方法
Set常见的属性:
size:返回Set中元素的个数
size属性
const arr = ["html","css","vue","nodejs","webpack"]
const set = new Set(arr)
console.log(set.size) // 5
Set常用的方法:
add(value):添加某个元素,返回Set对象本身
delete(value):从set中删除和这个值相同的元素,返回boolean类型
has(value):判断set中是否存在
clear():清空set中所有的元素,没有返回值
forEach():可以通过forEach遍历set
Map数据结构
map用于存储映射关系
可以将对象key用其他类型 比如对象 ,也就是对象的key可以是对象类型
Map常见属性: size:返回Map中元素的个数
Map常见的方法
set(key,value):在Map中添加key、value,并且返回整个Map对象
get(key):根据key获取Map中的value
has(key):判断是否包括某个key,返回Boolean类型
delete(key):根据key删除一个键值对,返回Boolean类型
clear():清空所有的元素
forEach()可以遍历Map
const map = new Map()
map.set(info,"aaa")
console.log(map.get(info)