sorting浮点数的数组
我有一个浮点数的数组:
[ 82.11742562118049, 28.86823689842918, 49.61295450928224, 5.861613903793295 ]
在数组上运行sort()之后,我得到这个:
[ 28.86823689842918, 49.61295450928224, 5.861613903793295, 82.11742562118049 ]
注意JavaScript(Node)的5.8 …大于49.6 …。 这是为什么?
我怎样才能正确地sorting这个数字?
传入一个sorting函数:
[….].sort(function(a,b) { return a - b;});
结果:
[5.861613903793295, 28.86823689842918, 49.61295450928224, 82.11742562118049]
来自MDN :
如果没有提供compareFunction,则通过将元素转换为string并按字典顺序(“字典”或“电话簿”,而不是数字)比较string来sorting元素。
内置的JSsorting函数将所有内容视为string。 尝试做你自己的:
var numbers = new Array ( 82.11742562118049, 28.86823689842918, 49.61295450928224, 5.861613903793295 ); function sortFloat(a,b) { return a - b; } numbers.sort(sortFloat);
- 如何让Webrtc支持我的Safari浏览器
- angular js ng-view返回blanc partials – Express / Jade
- 在node.js中是否有Android IAB(应用内付费)签名validation库?
- 在node.js的后端使用已经写好的前端javascript是否可行?
- 需要使用节点js尝试使用stripe设置可变数量的指导
- 如果在查询返回的文档字段数组中存在ObjectId,则填充布尔variables
- NodeJS:深层复制一个函数
- 如何将对象插入到meteorcollections中
- 如何处理从POST(NodeJs / Sequelize / Express)收到的数据