Skip to content

Instantly share code, notes, and snippets.

@Woodsphreaker
Last active September 18, 2017 18:55
Show Gist options
  • Save Woodsphreaker/546006023d139e4f72046573b82d5b34 to your computer and use it in GitHub Desktop.
Save Woodsphreaker/546006023d139e4f72046573b82d5b34 to your computer and use it in GitHub Desktop.
sorting
const arr = ['z', 'b', 'a']
const arr2 = [20, 10, 8, 30]
const arr3 = [{
name: "z",
job: "b"
}, {
name: "b",
job: "a"
},
{
name: "a",
job: "z"
}
]
const sorting = (obj, order = 'asc', field) => {
const asc = () => obj.sort((a, b) =>
((a = field ? a[field] : a) > (b = field ? b[field] : b) ? 1 : -1)
)
const desc = () => asc().reverse()
const sort = {
asc,
desc
}
return sort[order]()
}
console.log(sorting(arr, 'asc'))
console.log(sorting(arr2, 'desc'))
console.log(sorting(arr3, 'asc', 'name'))
console.log(sorting(arr3, 'desc', 'job'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment