HTML-用十进制值对select进行排序

HTML - ordering a select with decimal values

本文关键字:排序 select 十进制 HTML-      更新时间:2023-09-26

我遇到麻烦了。。。我现在正在构建一个动态表单,它的输出很奇怪。

基本上,当用户选择一个选项时,我有一个JavaScript来完成一个表单,从"土壤类型"»"坡度角度"»"水流速度"开始。现在,"水速度"有十进制值,它们加在一起可以很好地进行下拉选择,但完全无序。

我的选择列表看起来像:

1,2.3.1.5,2.5

代替:

1,1.5,2.2.5,3

我尝试将它们全部转换为浮点值,但没有成功。。。困扰我的是,Object及其属性是按正确的顺序声明的,console.log()也能很好地输出它们,所以我很好奇这是否只是HTML错误,以及是否有任何解决方法。

顺便说一句,我将它们添加到选择标签的方式是:

for(speed in obj[speeds]){
$('<option value='"'+speed+''">'+speed+'</option>').appendTo('select[name=waterspeed]');
        }

提前感谢!

首先尝试对速度数组进行排序:

obj[speeds].sort(function(a, b) {
    return a - b
});

此外,通常不建议将for in循环用于数组。考虑使用"正则"for循环:

for(var i = 0, max = obj[speeds].length; i < max; i++) {
   var speed = obj[speeds][i];
}