小程序排序,sort不能解决

js:

function bubbleSort(a, fn) {
for (var i = a.length - 1; i >= 1; i--)
for (var j = 0; j < i; j++)
if (fn(a[j], a[j + 1]))
swapArray(a, j, j + 1);
return a;
}


function selectionSort(a, fn) {
for (var i = a.length - 1; i >= 1; i--) {
var pos = i;
for (var j = 0; j < i; j++)
if (fn(a[j], a[pos]))
pos = j;
if (i != pos)
swapArray(a, i, pos);
}
return a;
}

function swapArray(a, i1, i2) {
[a[i1], a[i2]] = [a[i2], a[i1]];
}

function isFn(obj) {
return typeof obj === 'function';
}
function mysort(arr, fn) {
return selectionSort(arr, isFn(fn) ? fn : (a, b) => a > b);
}

module.exports = mysort;

 

引入:

var mysort = require('sort.js')

 

使用:

list= mysort(list, (x, y) => x.需要比对的属性> y.需要比对的属性);

posted @ 2019-08-13 15:07  请再检查一遍代码  阅读(1942)  评论(0)    收藏  举报