如何在JavaScript中对浮点数组进行排序
How to sort an array of floats in JavaScript?
我尝试了下面的例子,但现在使用了正确的信息。
var fruits = [110.111, 1245.22222, 2.458, 0.001];
fruits.sort();
document.write(fruits);
结果:
0.001,110.111,1245.22222,2.458
但我想要像这样的东西
0.001,2.458,110.111,1245.22222
这个代码怎么了?
array.sort([completeFunction])采用一个可选函数,用作自定义比较器
fruits.sort(function(a, b){
return a - b;
});
如果您想对递减进行排序
fruits.sort(function(a, b){
return b - a;
});
通过:MDN Array.prototype.sort docs
- 如果
compareFunction(a, b)
小于0,则将a排序为比b更低的索引,即a排在第一位 - 如果
compareFunction(a, b)
返回0,则使a和b相对于彼此保持不变,但相对于所有不同的元素进行排序。注意:ECMAscript标准并不保证这种行为,因此并非所有浏览器(例如,Mozilla版本至少可以追溯到2003年)都尊重这一点 - 如果
compareFunction(a, b)
大于0,则将b排序为比a低的索引 - 当给定一对特定的元素a和b作为其两个参数时,
compareFunction(a, b)
必须始终返回相同的值。如果返回不一致的结果,则未定义排序顺序
最近,我一直在做一些函数式编程。我将把这一部分留给那些想以不同方式解决同一问题的人。
首先我们有一些通用的效用函数。当我们想要定义更高阶的asc
和desc
排序函数时,这些将是必要的。
const sub = x => y => y - x;
const flip = f => x => y => f (y) (x);
const uncurry = f => (x,y) => f (x) (y);
const sort = f => xs => xs.sort(uncurry (f));
现在,您可以根据sub
轻松定义asc
和desc
const asc = sort (flip (sub));
const desc = sort (sub);
看看
asc ([4,3,1,2]); //=> [1,2,3,4]
desc ([4,3,1,2]); //=> [4,3,2,1]
您仍然可以使用sort (comparator) (someData)
进行自定义排序
// sort someData by `name` property in ascending order
sort ((a,b) => a.name - b.name) (someData); //=> ...
您可以使用这样的自定义排序函数:
fruits.sort(function (a,b) {return a - b;});
Array.sort()
方法将数字视为字符串,并按ASCII顺序对成员进行排序。
使用自定义函数进行排序
要对其进行排序,您需要创建一个取两个的比较器函数参数,然后用该比较器调用排序函数功能如下:
fruits.sort(function(a,b) { return parseFloat(a) - parseFloat(b) } );
如果要按升序排序,请更改parseInt(a)-parseInt(b)和parseInt(b)-parseInt(a)。注意从a变为b。
您可以定义排序函数:
fruits.sort(function(a,b) {return a>b})
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序