老师为什么 获取值和删除值没有效果

来源:3-5 编程练习

weixin_慕沐9107889

2022-02-14 22:33:40

<script>

const m = new Map();

m.set({},1);

console.log(m.get({}) //这里为什么获取的值是undefined 不是1

m.delete({});//也删除不了


</script>


写回答

1回答

好帮手慕小李

2022-02-15

同学你好,解答如下:

1、首先同学的代码报错了。

https://img.mukewang.com/climg/620b0c1909eb060b08100204.jpg

更改后如下:

https://img.mukewang.com/climg/620b0c2d09dc3f2b08820204.jpg

2、m.get({})打印这个就是undefined因为,设置了一个空对象。这里直接打印m可以得到设置好的对象如下:

https://img.mukewang.com/climg/620b0c9f0994e33709200256.jpg

结果如下:

https://img.mukewang.com/climg/620b0cb809362cdb04560195.jpg

3、删除不了是因为,对象在内存中保存的是地址,m.set({},1)与console.log(m.get({}) )中的{ },只是长得一样,实际上并不是同一个对象。 可以将代码修改成如下形式,就可以实现设置、删除同一个{ }了:

https://img.mukewang.com/climg/6215d0ea09c9582b05460375.jpg

同学自己试试,祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程