Javascript Array.sort()在Firefox和Chrome/Edge中的行为不同
我有一段极其简化的代码,它在Firefox中产生的结果与您在Chrome或Edge中得到的(和预期的)结果相反(没有尝试过其他浏览器):Javascript Array.sort()在Firefox和Chrome/Edge中的行为不同,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一段极其简化的代码,它在Firefox中产生的结果与您在Chrome或Edge中得到的(和预期的)结果相反(没有尝试过其他浏览器): [1,2,3,4,5].sort((a,b)=>1.forEach(a=>document.write(a))这不是一个bug,只是依赖于实现-如果每次比较都返回1,那么它是不一致的,规范没有说明结果应该是什么为什么不采取[1,2,3,4,5]。排序((a,b)=>a-b)或反向[1,2,3,4,5]。排序((a,b)=>b-a)?@CertainPerfo
[1,2,3,4,5].sort((a,b)=>1.forEach(a=>document.write(a))代码>这不是一个bug,只是依赖于实现-如果每次比较都返回1
,那么它是不一致的,规范没有说明结果应该是什么为什么不采取[1,2,3,4,5]。排序((a,b)=>a-b)
或反向[1,2,3,4,5]。排序((a,b)=>b-a)
?@CertainPerformance这只是一个简化的示例。它的行为方式是相同的,即使不是每个比较都一样。返回1应该保持2个项目的顺序不变,否?否,正返回值将导致结果中b
排在第一位,无论b
是什么-但是规范没有指定要比较的顺序元素。@d-h-e,因为它只是一个更大(非数字)示例的非常简化的版本。基本上,我在做一些比较,希望在两者相等时避免单独的“分支”。