我正在使用此函数对数组进行排序,其中一些是小数。但是在这种情况下我失去了.0
这些价值观。我想在指定时保留这个精度,但是当它没有时,不要添加它。
例如: [1.5, 2, 0.75, 1.0, 0.75]
应排序为[2, 1.5, 1.0, 0.75]
但使用下面的函数排序为[2, 1.5, 1, 0.75]
var sortNums = function( arr ) {
// Quit if arr is not an array.
if ( !$.isArray(arr) ) { return false; }
// Sort highest to lowest:
arr.sort(function(a,b) {return (b-a);});
// Remove non-numeric vals and return:
return $.map(arr, function(v) {if (typeof v === 'number') {return v;}});
};
答案 0 :(得分:4)
JavaScript删除了尾随小数零。
var x = 1.0;
x; // 1
如果要保留小数,则需要将它们转换为字符串。然后,如果需要,您可以在排序过程中将它们转换为数字。
答案 1 :(得分:1)
本身并没有任何精确性。但是sort
已经正常运行,并且使用JavaScript无限有用的自动转换,-
可以帮助您。请参阅:http://jsfiddle.net/hqc33/