首页>>前端>>JavaScript->灵异现象

灵异现象

时间:2023-12-02 本站 点击:0

大家好,我是小杜杜,这个专栏专门记录开发时遇到的灵异现象,如果有比较好玩的灵异现象可以在评论区留言,一起解决这些问题吧~

灵异现象

起因是这样的,之前,我有一个导出的活,需要前端按顺序导出,上线之后,提出了这样一个疑问,为什么要对导出的数据做排序?

排序,我没有啊,(PS:你没有提,我怎么可能做多余的工作?)

结果一看,导出的数据确实发生了排序,想这样:

部位/size 应该在第一列,然而莫名的却出现在了后面,再看看其他导出的顺序,确实好的,于是勾起了我的好奇~

现象本质

现象的本质是由浏览器引起的,我们在控制台输入

let obj = {    name: '小杜杜',    '1':'2',    age: '7'}

当在打印obj时,控制台会给我们什么呢,各位小伙伴觉得顺序会改变吗?

我在这里认为,并不会改变,然而:

好家伙,我的‘1’直接放到了最上方,这种现象我猜测应该根据浏览器的内核有关,Chrome会存在,其他浏览器下可能不会出现。

但我们仍然需要处理这个问题,接下来看看如何解决~

解决方案

通过ES6中的Map去增加,像这样:

可以发现,我们可以通过map去解决这个问题

然而这时你又会发现一个问题,那就是 map类型并不等价于object类型,针对一开始的问题,我如果使用Map我就要讲我导出excel的组件增加支持map类型的功能,就会变得很麻烦。

那么该怎么解决这个问题呢?此时突然冒出一声

我们在key值上多加一个空格来看看:

各位小伙伴是不是以为有什么高大上的解决方案?没想到最后通过一个空格解决了这次的灵异现象~

End

本次的灵异现象就到此结束,如果各位在平常遇到过各种各样的奇怪问题,可以在评论区留言,让我们一起来看看这些比较灵异的现象,和解决的策略,喜欢的点个赞支持一下吧~

原文:https://juejin.cn/post/7103787795457507358


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/JavaScript/9534.html