今天有个需求,要做个排行榜。后台Json传过来,坑爹的是要在前台排序。
心想,排序还不简单,什么折半冒泡之类的。
代码如下:
var userList = json....
//外层循环,共要进行arr.length次求最大值操作
for(var i=0;i<arr.length;i++){
//内层循环,找到第i大的元素,并将其和第i个元素交换
for(var j=i;j<arr.length;j++){
if(arr[i]<arr[j]){
//交换两个元素的位置
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
结果悲剧了,折腾了一下午,最后找到原因。
要将Json数据的数字强制转换一下。
//外层循环,共要进行arr.length次求最大值操作
for(var i=0;i<userList.length;i++){
//内层循环,找到第i大的元素,并将其和第i个元素交换
for(var j=i;j<userList.length;j++){
if(parseInt(userList[i].num)<parseInt(userList[j].num)){
//交换两个元素的位置
var temp=userList[i];
userList[i]=userList[j];
userList[j]=temp;
}
}}
对json数据传进行排序
时间: 2024-10-03 22:42:06