原因是这样的,在对对象里一个时间字段进行排序展示的时候,google浏览器运行是正常的,而ie并没有发生改变,起先我以为是常见的‘YYYY-MM-DD’和‘YYYY/MM/DD’在不同浏览器上的识别问题,后来转念一想应该不是的,毕竟我已经把它们都用moment处理成了moment对象,而且使用了moment.js的isAfter()函数
![](https://img.haomeiwen.com/i5971312/27536e1f1dc7b57e.png)
![](https://img.haomeiwen.com/i5971312/5839f9aa4132fd13.png)
在ie下结果sort居然没有任何作用
![](https://img.haomeiwen.com/i5971312/002e0652ed34d7ea.png)
然后我Google一下,原来是因为sort后面跟着的排序函数,需要返回正数、负数或者0才是标准的影响排序的函数。而如上例所示的采用返回布尔值的函数作为排序函数是一种误用。
看来以后看书还是得仔细,当时我就一直很好奇高级程序设计里为啥要用1,-1,0来作为返回值,网上的一些demo经常直接返回a>b害死人
![](https://img.haomeiwen.com/i5971312/aea1f4ef953dcfd4.png)
ps,我尝试着在Safari浏览器中试了一下也会有这种问题存在,平时还是得严谨一些
网友评论