js数组快速排序方法
普通数组排序
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([arr.splice(pivotIndex, 1)[0]], quickSort(right));
}
对象数组排序
arr是数组参数,type是对象数组中根据排序的字段参数,String类型
function quickSort(arr, type) {
if (arr.length <= 1) {
return arr;
}
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i][type] < pivot[type]) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left,type).concat([pivot], quickSort(right,type));
}