js中使用sort对json数据进行排序

2012年12月11日 | 由 helight | 500字 | 阅读大约需要1分钟 | 归档于 linux 应用 | 标签 #music

json格式的数据输出的时候一般是没有排序的,在展示的时候需要另外进行排序。这里总结了js对json数据排序的方法。 js中是弱类型变量,所以一般获取到数据是会按照系统自定义的类型处理,在我的系统中系统默认把数字也转化成了: “value”:“17404"这样的格式, 所以在处理上如果直接比较排序,它就会按照字符串来排序,所以要强制类型转化一下,转换为整型。 不说了,直接贴代码吧:

字符串比较排序:kdata是一个json数组,里面的有value字段,如下:

[{“name”:“kStatusAcc”,“value”:0},{“name”:“kStatusDis”,“value”:“140495659”},{“name”:“kStatusDisS”,“value”:“17404”}]

这里需要根据value值的大小进行排序:

kdata.sort(function(a, b){

return a["value" ] > b["value" ] ? 1 : a["value"] == b[ "value"] ? 0 : -1;

});

这里的排序并不是我们最终想要的结果,因为这里排序的时候会把value值当作字符串来比较,而不是数字比较,下面这段代码把字符串进行了强制转换,进行了数字比较,这才是我最总想要的结果。

kdata.sort( function(a, b){

return parseInt(a["value" ]) > parseInt(b["value" ]) ? 1 : parseInt(a[ "value"]) == parseInt(b[ "value" ])  ? 0 : -1;

});