H5W3
当前位置:H5W3 > 其他技术问题 > 正文

数组打印为空,但展开后是有数据的问题该怎么解决?

需要把百度地图原有的点进行左边转换,转换完保存到数组中打印出来是一个空数组,但展开后可以看到数据,不知道该怎么解决?下面上代码,把转换后的数据保存到list变量中。

  var convertor = new BMap.Convertor();
  convertor.translate(pos, 1, 5, function(data){
    if(data.status === 0) {
      list.push(data.points);
    }
  });
  

然后打印查看了一下list中的数据,结果显示是一个空数组,但展开后有坐标的,想请问一下大佬们改怎么解决

clipboard.png

回答:

你点哪个小蓝图标,会出现:Value below was evaluated just now。没展开的值,是不同的,展开后值全是一样的。其原因是在Chrome Console.log()点击展开数组时,会重新去读一遍内存真实的值然后显示,所以展开后都是最终值。

因此,在打印二维数组时,其实如若不展开,他显示的就是当前值,但是点击展开后,会重新去内存读值,所以展开的值,全是最终值,所以看到所有二维数组打印的都是一个值的情况。

解决方法:1、打印之前克隆对象 2. Json.Stringify转换成字符串

回答:

console.log()点击的时候会重新读取内存,我也踩过,复习了深拷贝浅拷贝的东西还~~

本文地址:H5W3 » 数组打印为空,但展开后是有数据的问题该怎么解决?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址