jvi*_*tti 29 javascript node.js
我有一个浮点数的数组:
[ 82.11742562118049, 28.86823689842918, 49.61295450928224, 5.861613903793295 ]
Run Code Online (Sandbox Code Playgroud)
在数组上运行sort()之后我得到了这个:
[ 28.86823689842918, 49.61295450928224, 5.861613903793295, 82.11742562118049 ]
Run Code Online (Sandbox Code Playgroud)
请注意,对于JavaScript(Node),5.8 ...大于49.6 ... 这是为什么?
我怎样才能正确排序这些数字?
dc5*_*dc5 40
传入排序功能:
[….].sort(function(a,b) { return a - b;});
Run Code Online (Sandbox Code Playgroud)
结果:
[5.861613903793295, 28.86823689842918, 49.61295450928224, 82.11742562118049]
Run Code Online (Sandbox Code Playgroud)
如果未提供compareFunction,则通过将元素转换为字符串并按字典("词典"或"电话簿",而不是数字)顺序比较字符串来对元素进行排序.
内置的 JS 排序函数将所有内容视为字符串。尝试自己制作:
var numbers = new Array ( 82.11742562118049, 28.86823689842918, 49.61295450928224, 5.861613903793295 );
function sortFloat(a,b) { return a - b; }
numbers.sort(sortFloat);
Run Code Online (Sandbox Code Playgroud)