js排序
阿新 • • 發佈:2017-09-01
emp i++ return temp urn 交換 color hang 最大的
一:
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].然後依次類推。
js排序