1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
export const sortCompare = (arr, prop, order = true) => { return arr.sort(compare(prop, order)) }
function compare(prop, order) { return (obj1, obj2) => { let val1 = obj1[prop] let val2 = obj2[prop] if (!isNaN(Number(val1)) && !isNaN(Number(val2))) { val1 = Number(val1) val2 = Number(val2) } if (order) { if (val1 < val2) return -1 else if (val1 > val2) return 1 else return 0 } else { if (val1 > val2) return -1 else if (val1 < val2) return 1 else return 0 } } }
|