JavaScript Array.sort doesn't work on some arrays of numbers
本问题已经有最佳答案,请猛点这里访问。
我尝试在数字数组上使用javascript的排序函数,有时它什么都不做:
1 2 | var a = [200,20].sort(); // [20,200] var b = [200,21].sort(); // [200,21] |
J小提琴
JavaScript的:一切的字符串(默认为alphabetically)。字符串是小于
1 | [200,21].sort(function(a,b) { return a-b }) |
是的,这是标准的行为,因为它是"排序"的"字符串"的顺序进行。如果你想,你必须通过数值排序,通过"比较"功能来排序,像这样:
1 2 3 4 | [200,21].sort(function (a, b) { return a-b; }) // [21, 200] |
该函数必须返回相同的值是0,0<n<(IF>n>0。如果那是足够的理由,提供差分排序(assuming那你不利用大数)