Sorting an array of decimal & whole numbers
本问题已经有最佳答案,请猛点这里访问。
我好像想不出这个。
1 2 | var arr = [2.62, 111.05, 1.05] arr.sort(); |
这将返回[1.05,111.05,2.62],但我期待[1.05,2.62,111.05]。
如何实现这一目标?我读过一些关于编写自定义排序来分割"十进制"的文章,但还没有成功。
默认情况下,排序是按字母顺序进行的。您需要将函数传递给
1 | arr.sort(function(a, b){return a-b;}); |
默认情况下,
1 | arr.sort(function(a, b){ return a - b; }); |
注意:javascript中的所有数字都是双精度浮点数,即使它们恰好包含一个整数值,所以整数值和十进制值的处理方式也不一样。
这是
1 2 | var arr = [2.62, 111.05, 1.05]; arr.sort(function(a,b) { return a-b; }); |
号
从MDN:
If compareFunction is not supplied, elements are sorted by converting them to strings and comparing strings in Unicode code point order. For example,"Cherry" comes before"banana". In a numeric sort, 9 comes before 80, but because numbers are converted to strings,"80" comes before"9" in Unicode order.
号