对十进制和整数的数组进行排序

zoo*_*src 2 javascript arrays sorting decimal

我似乎无法想出这个.

var arr = [2.62, 111.05, 1.05]
arr.sort(); 
Run Code Online (Sandbox Code Playgroud)

这会返回[1.05,111.05,2.62],但我期待[1.05,2.62,111.05].

怎么能实现这一目标?我已经阅读了一些关于编写自定义排序以分割"十进制"但没有取得任何成功的内容.

sty*_*ane 11

默认情况下,按字母顺序排序.您需要将函数传递给该sort方法

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


Guf*_*ffa 7

sort方法默认情况下将项目作为字符串进行比较。您可以指定一个比较器函数,以任意方式进行比较。这会将项目比较为数字:

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

注意:Javascript中的所有数字都是双精度浮点数,即使它们恰好包含整数值,因此对整数值和十进制值也没有区别。