如果我写一个总是返回0的自定义排序函数,为什么它会扰乱数组的元素而不是让它们保持不变?
[0,1,2,3,4,5,6,7,8,9,10,11,12].sort(function(a,b){return 0;});
会给你:
[6, 0, 2, 3, 4, 5, 1, 7, 8, 9, 10, 11, 12]
我认为.sort()总是返回0会使数组保持不变。
奇怪的是,如果你在一个少于10个项目的数组上进行,则数组顺序不变。
我遇到了这个排序xy点,2个单独的.sort()调用,一个用于x,然后是y。在所有ys与水平线共线的情况下,它对我已经排序的x值进行解扰。
.sort(function(a,b){
if(a.x-b.x<-EPSILON_HIGH){return -1;}
if(a.x-b.x>EPSILON_HIGH){return 1;}
return 0;})
.sort(function(a,b){
if(a.y-b.y<-EPSILON_HIGH){return -1;}
if(a.y-b.y>EPSILON_HIGH){return 1;}
return 0;})
;