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>