set
set是ES6中一个新的数据结构,set的使用和数组是类似的,区别就是,set里没有重复项
使用
let set = new Set([13,3,4,5]) set.add(3) // 获取set中值的时候,需要先转成数组在取获取 // set里的元素是不会重复的
常用的api
- add
- delete
- has
- clear
size
set里由size属性,可以获取set的长度
set的遍历
可以通过forEach遍历set。 set里的key和value是一样的
script> var set = new Set([1, 2, 1, 3, 5, 2, 3, 4, 5, 3, 6, 7, 6]) //set.add() 添加 console.log(set.add(8)) //set.delete() 删除 console.log(set.delete(7)) //true console.log(set) // set的长度 console.log(set.size) //7 // set.has() 有就返回true 没有返回false console.log(set.has(7)) //false //set.clear() 清空 //遍历器 console.log(set.entries()) let iterator = set.entries() console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) console.log(iterator.next()) //forEach set.forEach(item=>{ console.log(item) }) </script>
weakset
创建
new WeakSet()
weakset中的每一项都是引用类型
- add
- delete
- has
- clear
<script> //引用类型 let weakset = new WeakSet([{'name':'zs'},{'age':15}]) console.log(weakset) </script>
Map
存储键值对的
let map = new Map([[key,value],[key2,value2]]) map.set(key,value) map.get(key) map.delete(key) map.has(key) map.clear() // map中key可以是任意的属性,比如数字、字符串、对象、bool...
遍历map
map.forEach((value,key)=>{
})
<script> let map = new Map([['key', '这是一个键值'], ['name', '寒霜']]) console.log(map) console.log(map.get('key')) console.log(map.get('name')) //键也可以是数字 //set() map.set('3', '123') console.log(map.get('3')) //键也可以是boolean map.set(true, '4656') console.log(map.get(true)) //键也可以是对象 let obj = { 'name': 'ws' } map.set(obj, '键也可以是对象') console.log(map.get(obj)) // 键也可以是symbol let symbol = Symbol('键') map.set(symbol, '键也可以是symbol') console.log(map.get(symbol)) console.log(map.size) map.delete(symbol) console.log(map.get(symbol)) console.log(map.has(obj)) //true //map.clear()清空 // 遍历器 // map.entries() let map1 = new Map(); map1.set('键1', '值1') map1.set('键2', '值2') map1.set('键3', '值3') map1.set('键4', '值4') map1.set('键5', '值5') map1.set('键6', '值6') console.log(map1.entries()) map1.forEach((value,key)=>{ console.log(value+'=>key是:'+key) }) </script>
WeakMap
WeakMap的键只能是引用类型
new WeakMap()
- set
- get
- delete
- has
- clear
<script> //weakmap 的key 只能是引用类型 let weakmap = new WeakMap([[{'name':'zsx'},'value']]); console.log(weakmap) </script>