Map Set学习

89 阅读1分钟

Map

map是键值对形式的(key : value) map是操作key的方式 map.keys()函数返回的是键的集合
map.values()函数返回的是值的集合
map.entries()函数返回的是键值对的集合
这些集合都是Iterator实例,可以通过for...of来遍历

const map = new Map() // 创建Map
const map = new Map([['a',1],['b',2]]) // {'a' => 1,'b' => 2}创建的时候传入初始值(二维数组)
// 添加元素 map.set(key,value)
console.log(map.set('key',123)) // {'abc' => 123}
// 查找元素 map.get(key)
console.log(map.get('key')) // 返回 123 map.get(需要填写key)
// 判断是否有用键  map.has
console.log(map.has('key')) // true 判断map里面是否拥有此键值 map.delete(需填写key)
// 删除键值对 map.delete(key)
console.log(map.delete('key')) //返回true为删除成功 map.delete(需填写key)
// 转化为数组
console.log(Array.from(map)) // 输出 ['key', 123]
// 获取所有key
console.log(map.keys())
// 获取所有value
console.log(map.values())
// 清空map
console.log(map.clear())

// 遍历map for of
for (let [key,value] map){
    console.log(key,value)
}

map.forEach((key,value) => {
    console.log(key,value)
})

Set

set是一个集合,里面的值都是不重复的,只存储value没有key

const = set = new Set()
// 添加元素 set.add()
set.add(1)
set.add(2)
console.log(set) // {1 , 2}
// 也可以传递数组进行创建
const = set = new Set([1,2])
console.log(set) // {1 , 2}
console.log(set) // {1}
// 判断是否拥有某一项 set.has  返回Boolean
console.log(set.has(value))
// 返回set个数 set.size
console.log(set.size) // 2
// 删除元素 set.delete(value)
set.delete(2)
// 可以实现去重
const set = new Set([1,1,1,3,4])
console.log(set) // {1,3,4}
// 转为数组
console.log([...set]) // [1,3,4]
console.log(Array.from(set)) // [1,3,4]    
// 遍历set
set.forEach((key,val) => console.log(key + ": " + val))