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.需要比對的屬性);