众所周知,对象中的键名只能是字符串类型。但是在JS在ES6中呢给我们提供了一种新的类型,Map(集合)。
而Map类型的键名可以为number类型,也可以为string类型,也可以为对象,甚至连function都能作为map的键名。
let map = new Map(); map.set('name', 'Joker'); map.set(function () {}, 'Joker'); map.set({}, 'Joker'); map.set(1,'Joker'); console.log(map);Map类型查找操作:
let map = new Map([[name, "Joker"]]); console.log(map.get(name)); //JokerMap类型删除操作:
let map = new Map([[name, "Joker"]]); console.log(map.delete(name)); //true 这个为删除某一个值 console.log(map.clear()); //undefined 这个为清空所有值 console.log(map) //Map(0) {}Map类型查找某个元素是否存在:
console.log(map.has(name)); //true 返回值为true即查找成功,false即查找失败获取Map类型的所有键:
.keys()为获取键,.values()为获取值,.entries()为获取键值对
let map = new Map([["name", "Joker"], ["title", "author"]]); console.log(map.keys()); //MapIterator {"name", "title"} console.log(map.values()); //MapIterator {"Joker", "author"} console.log(map.entries()); //MapIterator {"name" => "Joker", "title" => "author"}Map类型的遍历:
let map = new Map([["name", "Joker"], ["title", "author"]]); for (const [key, value] of map.entries()) { console.log(key, value) }
