我有一个数组的对象,我想排序ASC的数组的值为’home’.该字段始终是数字.所以我试过这个:
_.sortBy(data.home.en,function(obj){ return obj.home });
当“家”的价值低于10时,这是很好的工作,但由于某种原因10在1之后,所以我的最终订单看起来像这样1,10,11,2,3,4,5,6,7,8,9.为什么会发生这种情况?谢谢…
解决方法
您的obj.home值是字符串,所以它们被比较为字符串,’1′ ’10’是真的如果你想像数字一样排序,然后将它们转换成数字:
_.sortBy(data.home.en,function(obj){ return +obj.home });
要么:
_.sortBy(data.home.en,function(obj){ return parseInt(obj.home,10) });