Map
特点:
- 类似于对象,本质上是键值对的集合
- “键”不局限于字符串,各种类型的值(包括对象)都可以当做键
- 对象“字符串-值”,map “值-值”,是一种更加完善的 hash 结构实现
- 键唯一,相同键后面的会覆盖前面的
{
let obj = {
a: 1}, obj1 = {
b: 2}, obj2 = {
};
obj2.c = 3;
//无论键内传什么 最终都会转换为字符串
obj2['d'] = 4;
obj2[obj] = 5;
console.log(obj.toString());//[object Object]
console.log(obj, obj1, obj2);//{a: 1} {b: 2} {c: 3, d: 4, [object Object]: 5}
}
map
{
let obj = {
a: 1}, obj1 = {
b: 2};
//创建一个map
const map = new Map([
['name', 'bob'],
['name', 'lucy'],//自动覆盖重复键值
['age', 18],
[obj, 'good'],
[obj1, 'bad'],
[[1, 2], 'hhh']
]);
console.log(map);//Map(5) {"name" => "lucy", "age" => 18, {…} => "good", {…} => "bad", Array(2) => "hhh"}
}
属性
size
{
let obj = {
a: 1}, obj1 = {
b: 2};
const map = new Map([
['name', 'bob'],
['name', 'lucy'],
['age', 18],
[obj, 'good'