JavaScript - new Map()基本用法

1 初始化,set 和 get

// 1 new Map(), set and get
const map1 = new Map();

map1.set('a', 1);
map1.set('b', 2);
map1.set('c', 3);
console.log(map1.get('a'));
console.log(map1.get('b'));
console.log(map1.get('c'));

1
2
3

2 size

console.log(map1.size);

3

3 delete

map1.delete('b');

console.log(map1.size);

2

4 has

console.log(map1.has('a'));
console.log(map1.has('b'));

true
false

5 print key, value

for (const [key, value] of map1) {
    console.log(key + ' : ' + value);
}
for (const [key, value] of map1.entries()) {
    console.log(key + " : " + value);
}

a : 1
c : 3

6 print keys, values

for (const key of map1.keys()) {
    console.log(key);
}

for (const value of map1.values()) {
    console.log(value);
}

a
c
1
3

7 forEach

map1.forEach(function (value, key) {
    console.log(key + ' = ' + value)
})

a = 1
c = 3

8 Map 和Array 的相互转化

const keyValue = [['a', 1], ['b', 2]];
const map2 = new Map(keyValue);

console.log(map2.get('a'));
console.log(Array.from(map2));
console.log([...map2]); // spread to array
console.log(Array.from(map2.keys()));

1
[ [ ‘a’, 1 ], [ ‘b’, 2 ] ]
[ [ ‘a’, 1 ], [ ‘b’, 2 ] ]
[ ‘a’, ‘b’ ]

9 map浅拷贝

const original = new Map([
    [1, 'a']
])

const clone = new Map(original)

console.log(clone.get(1))       // a
console.log(original === clone) // false (useful for shallow comparison)

10 map 合并, key相同,保留最后的value

const first = new Map([
    [1, 'a'],
    [2, 'b'],
    [3, 'c'],
])

const second = new Map([
    [1, 'd'],
    [2, 'e']
])

// Merge two maps. The last repeated key wins.
// Spread operator essentially converts a Map to an Array
const merged = new Map([...first, ...second])

console.log(merged.get(1)) // d
console.log(merged.get(2)) // e
console.log(merged.get(3)) // c

d
e
c

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,Map是一种数据结构,它可以将键值对存储在一个对象中,其中键和值可以是任何类型的数据。Map的使用方法非常简单,可以使用new操作符和Map构造函数来创建一个新的Map对象。例如: ``` let map = new Map(); ``` 上面的代码创建了一个新的空Map对象。我们可以使用set方法向Map对象添加新的键值对,例如: ``` map.set('name', '张三'); map.set('age', 18); ``` 上面的代码向Map对象中添加了两个键值对:'name'对应的值为'张三','age'对应的值为18。我们也可以使用get方法获取Map对象中的某个键对应的值,例如: ``` console.log(map.get('name')); // 输出:张三 console.log(map.get('age')); // 输出:18 ``` 上面的代码分别输出了Map对象中'name'和'age'对应的值。我们还可以使用has方法检查某个键是否存在于Map对象中,例如: ``` console.log(map.has('name')); // 输出:true console.log(map.has('gender')); // 输出:false ``` 上面的代码分别检查了Map对象中是否存在'name'和'gender'这两个键。我们还可以使用delete方法删除Map对象中的某个键值对,例如: ``` map.delete('age'); console.log(map.get('age')); // 输出:undefined ``` 上面的代码删除了Map对象中'age'对应的键值对,并使用get方法检查该键是否存在于Map对象中(输出结果为undefined,表示该键不存在)。 综上所述,Map对象提供了一种灵活的存储键值对的方式,可以方便地进行添加、删除、查找等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值