小程序排序,sort不能解决

一曲冷凌霜 提交于 2019-11-27 05:11:26

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!