Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对具有十进制/虚线数字的对象数组进行排序_Javascript_Sorting - Fatal编程技术网

Javascript 对具有十进制/虚线数字的对象数组进行排序

Javascript 对具有十进制/虚线数字的对象数组进行排序,javascript,sorting,Javascript,Sorting,如何在JS中按升序对下面的数组进行排序 let obj_list = [{Sno:"1"},{Sno:"4"},{Sno:"3"},{Sno:"9"},{Sno:"9.1"}, {Sno:"9.2"},{Sno:"9.6"},{Sno:"9.3"},{Sno:"9.10"},

如何在JS中按升序对下面的数组进行排序

let obj_list = [{Sno:"1"},{Sno:"4"},{Sno:"3"},{Sno:"9"},{Sno:"9.1"},
                {Sno:"9.2"},{Sno:"9.6"},{Sno:"9.3"},{Sno:"9.10"},
                {Sno:"9.11"},{Sno:"9.13"},{Sno:"9.12"}];
我尝试了下面写的正常排序函数,但输出不正确

obj_list.sort(function(a,b){
return a.Sno - b.Sno;
});
更新该员额:

我希望输出为:

[{Sno:"1"},{Sno:"3"},{Sno:"4"},{Sno:"9"},{Sno:"9.1"},
{Sno:"9.2"},{Sno:"9.3"},{Sno:"9.6"},{Sno:"9.10"},
{Sno:"9.11"},{Sno:"9.12"},{Sno:"9.13"}]

这是你的答案,请核对一下,谢谢

let obj_list=[{Sno:1},{Sno:4},{Sno:3},{Sno:9},{Sno:9.1},
{Sno:9.2},{Sno:9.6},{Sno:9.3},{Sno:9.10},
{Sno:9.11},{Sno:9.13},{Sno:9.12}
];
对象列表排序(函数(a,b){
var x=a[“Sno”];
变量y=b[“Sno”];
返回x-y;
});
无小数的var=obj\u list.filter(o=>o.Sno.split(“.”),长度==1);
obj_list=obj_list.filter(o=>o.Sno.split(“.”)。长度>1)。排序(函数(a,b){
变量x=a[“Sno”]。拆分(“.”[1]+“0”;
变量y=b[“Sno”]。拆分(“.”[1]+“0”;
返回x-y;
});
var结果=无小数点。concat(对象列表);

console.log(result)
idk为什么你没有得到答案。它只是
obj_list.sort((a,b)=>a.Sno-b.Sno)@hassaniam,@danhuong我已经为我的预期输出更新了帖子。感谢是什么使9.2<9.10?使用
obj_list.sort((a,b)=>a.Sno.localeCompare(b.Sno,未定义,{numeric:true}))
请检查预期的输出。他们想要
9.10
9.2
之后,抱歉现在只有我看到了,我会检查并更新uCheck现在输出
,没有小数。concat(obj\u列表)
将不起作用。如果有
Sno:“10”
,它将被添加到所有
9.x
great之前,您是正确的