js的Map问题?

  
  console.log(this.goodsImg)
  console.log(this.goodsImg.size)
  console.log(this.goodsImg)
  
  

clipboard.png

this.goodsImg是一个Map,里面有5个键值对,但是为什么他的size会为0?

阅读 3.8k
3 个回答

应该是你输出size的时候map的size为0吧

你在输出size的前后都写了一行 console.log(this.goodsImg),应该是想对比输出前后的变化,但其实这样写是没有用的。在console中输出引用对象,对象变化了在console中也是看到变化后的结果,无论你什么时候输出的。

比如

var map = new Map();
console.log( map );
map.set( 'test', 1 );
console.log( map );

这两次输出在控制台中展开,看到的结果是一样的
图片描述

你这个多了一层 _c包裹,应该是 goodsImg._c.size

我看你的格式 _c并不是一个map的key
也就是说:

var myMap = new Map();
myMap["_c"] = new Map();//你的_c并不是通过map的set方法加进去的
var name = {"name":"wangwu"}
myMap["_c"].set(name,name)
console.log(myMap.size)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题