Javascript HTML-使用十进制值排序select

Javascript HTML-使用十进制值排序select,javascript,html,object,Javascript,Html,Object,我有麻烦了。。。 我有一个奇怪的输出,来自我正在构建的动态表单 基本上,当用户选择一个选项时,我有一个JavaScript来完成表单,从“土壤类型”»“坡度角度”»“水流速度”开始。现在,“水流速度”有十进制值,它们加起来都是下拉选择,但完全不符合顺序 我的选择列表如下所示: 一,, 2. 3. 1.5, 2.5 而不是: 一,, 1.5, 2. 2.5, 三, 我尝试将它们全部转换为浮点值,但运气不好……困扰我的是,对象及其属性的声明顺序正确,console.log()也可以很好地输出它们,所

我有麻烦了。。。 我有一个奇怪的输出,来自我正在构建的动态表单

基本上,当用户选择一个选项时,我有一个JavaScript来完成表单,从“土壤类型”»“坡度角度”»“水流速度”开始。现在,“水流速度”有十进制值,它们加起来都是下拉选择,但完全不符合顺序

我的选择列表如下所示:

一,, 2. 3. 1.5, 2.5

而不是:

一,, 1.5, 2. 2.5, 三,

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

顺便说一下,我将它们添加到select标记的方式是:

for(speed in obj[speeds]){
$('<option value=\"'+speed+'\">'+speed+'</option>').appendTo('select[name=waterspeed]');
        }
for(以obj为单位的速度[速度]){
$(''+速度+'').appendTo('select[name=waterspeed]');
}

提前谢谢

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

obj[speeds].sort(function(a, b) {
    return a - b
});
此外,通常不建议阵列使用for in循环。考虑使用循环的“正则”:

for(var i = 0, max = obj[speeds].length; i < max; i++) {
   var speed = obj[speeds][i];
}
for(变量i=0,max=obj[speeds]。长度;i
你能告诉我
速度的定义,以及你是如何对它们进行排序的吗?哦,好吧……在我提交问题之后,我尝试用双引号将对象属性包装起来,如“1.0”、“1.5”。。。而且它在select下拉列表中似乎工作正常。无论如何,我没有结束这个问题,因为在指定所有项都是浮点值之后,如果不使用转换到字符串,可能会有更好的答案。似乎找不到select在这种情况下的工作方式。。。