将浮点数排序为自然数
sort float numbers as a natural numbers
我有一个逗号分隔的浮点数。
var example = "1.1, 1.10, 1.2, 3.1, 3.14, 3.5";
我想对这些浮点数进行排序,比如
"1.1, 1.2, 1.10, 3.1, 3.5, 3.14"
实际上,在我的情况下,小数后的数字会被认为是一个自然数,所以1.2会被认为"2",1.10会被认为为"10",这就是为什么1.2会比1.10排在第一位。
建议或榜样对我来说都很好,谢谢。
实际上,我想首先根据小数前的数字对数组进行排序:),然后运行上面的逻辑。
您可以使用带有自定义比较功能的.sort
,就像一样
var example = "1.1, 1.10, 1.2, 3.1, 3.14, 3.5";
var res = example.split(',').sort(function (a, b) {
var result;
a = a.split('.'),
b = b.split('.');
while (a.length) {
result = a.shift() - (b.shift() || 0);
if (result) {
return result;
}
}
return -b.length;
}).join(',');
console.log(res);
您需要一个自定义排序函数,该函数首先比较小数点前的数值,然后比较小数点后的数值,以防它们相等。
example.split(", ").sort(function (a, b) {
var aParts = a.split(".", 2);
var bParts = b.split(".", 2);
if (aParts[0] < bParts[0]) return -1;
if (aParts[0] > bParts[0]) return 1;
return aParts[1] - bParts[1]; // sort only distinguishes < 0, = 0 or > 0
}).join(", ");
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- sort而不是排序javascript
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 如何合并不同集合的游标并按日期排序
- 为什么我的JavaScript堆栈排序函数不起作用
- ui网格:在自定义表头模板中触发排序
- jquery Onclick函数带有导致双击的回调排序函数
- Rubaxa可与聚合物进行排序/拖放不起作用,具体取决于显示器:
- 将浮点数排序为自然数