为什么在Javascript中-Infinity之前-1排序?

GOT*_*O 0 8 javascript sorting

出于好奇,这里适用的规则是什么?

alert([-Infinity, -1, Infinity, 0, 1].sort());
Run Code Online (Sandbox Code Playgroud)

输出: -1, -Infinity, 0, 1, Infinity

JSFiddle: http ://jsfiddle.net/8tVGb/


怎么样-Infinity在-1到0之间排序?

Ber*_*rgi 12

如果您不使用自定义比较功能,请sort始终将项目转换为字符串并按字典顺序对它们进行排序.使用

….sort(function(a,b){ return a-b; })
Run Code Online (Sandbox Code Playgroud)

另请参见如何正确排序整数数组

  • 每当你使用具有数字溢出环绕的语言(其中`Integer.MAX + 1 == Integer.NEGATIVE_MIN`)时,@ SoftwareMonkey是正确的.在这些情况下,这种技术将始终有效:`sort(function(a,b){return(a> b?1:(a <b?-1:0))}` (3认同)