underscore.js – 使用下划线sortBy方法排序对象数组

前端之家收集整理的这篇文章主要介绍了underscore.js – 使用下划线sortBy方法排序对象数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数组的对象,我想排序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) });

演示:http://jsfiddle.net/ambiguous/DpfgV/1/

猜你在找的JavaScript相关文章