版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/document_dom/article/details/88537500
js排序的几个常用方法
var arr = [{
age: 12,
name: 111
}, {
age: 28,
name: 222
}, {
age: 97,
name: 333
}, {
age: 567,
name: 444
}, {
age: 7,
name: 555
}, {
age: 182,
name: 666
}];
js自带sort方法排序
arr.sort(function(s1,s2){
return s1.age-s2.age;
})
快速排序
function sort(arr) {
if (arr.length <= 1) {
return arr;
}
var text = arr[0].age;
var leftArr = [];
var rightArr = [];
for (var i = 1; i < arr.length; i++) {
if (arr[i].age < text) {
leftArr.push(arr[i]);
} else {
rightArr.push(arr[i]);
}
}
return [].concat(sort(leftArr), [arr[0]], sort(rightArr));
}
冒泡排序
function sort(arr){
var a=null;
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j].age > arr[j+1].age){
a=arr[j+1];
arr[j+1]=arr[j];
arr[j]=a;
}
}
}
return arr;
}
选择排序
function sort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
var min = i;
for (var j = i + 1; j < arr.length; j++) {
if (arr[min].age > arr[j].age) {
min = j;
}
}
var text = arr[min];
arr[min] = arr[i];
arr[i] = text;
}
return arr;
}