我有一个浮点数数组:
[ 82.11742562118049, 28.86823689842918, 49.61295450928224, 5.861613903793295 ]
在数组上运行sort()后,我得到了:
[ 28.86823689842918, 49.61295450928224, 5.861613903793295, 82.11742562118049 ]
请注意,JavaScript(节点)的5.8 …大于49.6…。这是为什么?
如何正确地对这些数字进行排序?
传递排序函数:
[….].sort(function(a,b) { return a - b;});
结果:
[5.861613903793295, 28.86823689842918, 49.61295450928224, 82.11742562118049]
从MDN:
如果未提供compareFunction,则通过将元素转换为字符串并按字典顺序(“字典”或“电话簿”,而非数字)顺序比较字符串来对元素进行排序。