我在这里遇到麻烦了...
我正在从当前正在构建的动态表单中获得奇怪的输出。

基本上,我有一个JavaScript在用户选择选项时填写表格,以“土壤类型”»“倾斜 Angular ”»“水速”开头。现在,“水速”具有十进制值,它们全部合计为下拉选项的总值,但完全不正确。

我的选择列表如下所示:

1,
2,
3,
1.5,
2.5

代替:

1,
1.5,
2,
2.5,
3

我试着将它们全部转换为浮点值,没有运气...让我烦恼的是,对象及其属性是以正确的顺序声明的,而console.log()也会很好地输出它们,所以我很好奇如果这仅仅是HTML错误,并且有任何解决方法。

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

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

提前致谢!

最佳答案

尝试先对您的speeds数组进行排序:

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

另外,通常不建议在数组中使用for循环。考虑使用“常规” for循环:
for(var i = 0, max = obj[speeds].length; i < max; i++) {
   var speed = obj[speeds][i];
}

09-25 20:08