大家好,我是小杜杜,这个专栏专门记录开发时遇到的灵异现象,如果有比较好玩的灵异现象可以在评论区留言,一起解决这些问题吧~
灵异现象
起因是这样的,之前,我有一个导出的活,需要前端按顺序导出,上线之后,提出了这样一个疑问,为什么要对导出的数据做排序?
排序,我没有啊,(PS:你没有提,我怎么可能做多余的工作?)
结果一看,导出的数据确实发生了排序,想这样:
部位/size 应该在第一列,然而莫名的却出现在了后面,再看看其他导出的顺序,确实好的,于是勾起了我的好奇~
现象本质
现象的本质是由浏览器引起的,我们在控制台输入
let obj = { name: '小杜杜', '1':'2', age: '7'}
当在打印obj
时,控制台会给我们什么呢,各位小伙伴觉得顺序会改变吗?
我在这里认为,并不会改变,然而:
好家伙,我的‘1’直接放到了最上方,这种现象我猜测应该根据浏览器的内核有关,Chrome
会存在,其他浏览器下可能不会出现。
但我们仍然需要处理这个问题,接下来看看如何解决~
解决方案
通过ES6中的Map去增加,像这样:
可以发现,我们可以通过map
去解决这个问题
然而这时你又会发现一个问题,那就是 map
类型并不等价于object
类型,针对一开始的问题,我如果使用Map我就要讲我导出excel的组件增加支持map
类型的功能,就会变得很麻烦。
那么该怎么解决这个问题呢?此时突然冒出一声
我们在key值上多加一个空格来看看:
各位小伙伴是不是以为有什么高大上的解决方案?没想到最后通过一个空格解决了这次的灵异现象~
End
本次的灵异现象就到此结束,如果各位在平常遇到过各种各样的奇怪问题,可以在评论区留言,让我们一起来看看这些比较灵异
的现象,和解决的策略,喜欢的点个赞支持一下吧~