rambdax
Version:
Extended version of Rambda - a lightweight, faster alternative to Ramda
28 lines (22 loc) • 510 B
JavaScript
function sortHelper(
a, b, listOfSortingFns
){
let result = 0
let i = 0
while (result === 0 && i < listOfSortingFns.length){
result = listOfSortingFns[ i ](a, b)
i += 1
}
return result
}
export function sortWith(listOfSortingFns, list){
if (arguments.length === 1)
return _list => sortWith(listOfSortingFns, _list)
if (Array.isArray(list) === false)
return []
const clone = list.slice()
clone.sort((a, b) => sortHelper(
a, b, listOfSortingFns
))
return clone
}