Map(key,value)
Map 对象是存储键值对的集合,并且能够记住键的原始插入顺序。具有极快的查找速度。
- 创建
第一种:创建的时候进行初始化
let map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three'],
]);
第二种:创建空的Map,然后添加元素
let map=new Map()
map.set(1,'one')
map.set(2,'two')
map.set(3,'three')
- 常用属性和方法
//属性
map.size;//输出map对象的长度
//方法
map.set(4,'four');//添加元素
map.has(1)//true 括号内填写键值,返回布尔值,判断是否存在键值1
map.get(1)//one 括号内填写键值,返回键值对应的值
map.keys() //返回键值的集合
map.values()//返回值的集合
map.delete(2)//根据键值删除对应的值
map.clear()//删除所有值,清空
- 遍历
forEach:
let map=new Map()
map.set(1,'one')
map.set(2,'two')
map.set(3,'three')
map.forEach(function(value, key) {
console.log(key + '='+ value);
})
//输出
//1=one 2=two 3=three
for of:
let map = new Map();
map.set(1,'one')
map.set(2,'two')
map.set(3,'three')
for (let [key, value] of map) {
console.log(key + " = " + value);
}
// 输出 1=one 2=two
for (let key of map.keys()) {
console.log(key);
}
// 输出0,1
for (let value of map.values()) {
console.log(value);
}
// 输出 one two
- 特点
一个key值只能对应一个value值,多次对一个key放入value,后边的值会将前边的值覆盖掉。(key值不可重复,value可以重复)
举例:
<body>
<script>
let map=new Map()
map.set(1,'one')
map.set(1,'two')
console.log(map.get(1))
//输出two,one被two覆盖
</script>
</body>
Set(key)
Set对象和Map对象类似,也是一组key的集合,但不存储value。且key是唯一的
- 创建
第一种:创建的时候初始化
let set=new Set([1,2,3])
第二种:创建一个空的Set,然后添加元素
let set=new Set()
set.add(1)
set.add(2)
set.add(3)
- 常用属性和方法
//属性
Set.size()//返回集合所包含元素的数量
//方法
Set.add(1)//向集合添加一个新的项
Set.has(1)//判断集合中是否含有1,返回布尔值,有true,没有false
Set.delete(1)//从集合中删除1
Set.clear()//清空集合中的所有值
Set.values()//输出所有的值
- 遍历
forEach:
let set=new Set()
set.add(1)
set.add(2)
set.add(3)
set.forEach(function(value) {
console.log(value);
});
//输出1,2,3
for of:
let set=new Set()
set.add(1)
set.add(2)
set.add(3)
for (let value of set) {
console.log(value);
}
//输出1,2,3
for (let value of set.values()) {
console.log(value);
}
//输出1,2,3
- 特点
key值不能重复。
let set=new Set()
set.add(1)
set.add(2)
set.add(3)
set.add(3)
console.log(set)
//可以重复添加,但是不会有效果,set的值依然是:set={1,2,3}