js排序
一:
var num=[7,45,100,4,2,564]; function sortNum(a,b){ return a-b; } num.sort(sortNum); console.log(num) //[2, 4, 7, 45, 100, 564]
二:
var list=[ {name:"lisan",age:22}, {name:"zhangsi",age:20}, {name:"laowu",age:25} ]; function sortNum(ageList){ return function(a,b){ var list1=a[ageList]; var list2=b[ageList]; return list1-list2 } }; list.sort(sortNum('age')); console.log(list); //结果如下 {name: "zhangsi", age: 20} {name: "lisan", age: 22} {name: "laowu", age: 25}
三:冒泡排序
var arrNum=[7,8,3,2]; function sortArr(arr){ for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ var temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } }; return arr; }; console.log(sortArr(arrNum))
js中排序sort其实就是arrNum中第一个与第二个比较,如果第一个比第二个大,那么他们交换位置,否则不变。然后第二个和第三个比较,大的那个向后排,依次结果[7,3,2,8]。也就是把最大的那个排到了最后面,但这不是我们想要的结果。
所以再上面有2层循环,当i=0时[7,2,3,8],当i=1时,其实前面已经把最大的那个排出来了 ,所以这里的j<arr.length-1-i,结果时[3,2,7,8].然后依次类推。