Implement the sortby
parent
0d45d9aae8
commit
a821e706cb
|
@ -0,0 +1,21 @@
|
|||
const sortby = (properties) => (a, b) => {
|
||||
// if items is {prop1:value1, prop2:value2}
|
||||
// then sort(['prop1', 'desc', 'prop2'])
|
||||
// will sort by prop1 desc and prop2
|
||||
for (var i = 0; i < properties.length; i++) {
|
||||
var property = properties[i]
|
||||
|
||||
let order = -1
|
||||
if (i + 1 < properties.length && properties[i + 1] === 'desc') {
|
||||
order = 1
|
||||
i++
|
||||
}
|
||||
|
||||
if (a[property] < b[property]) return order
|
||||
if (a[property] > b[property]) return -order
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
export { sortby }
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"name": "sortby",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "sortby",
|
||||
"description": "Sort object by property name",
|
||||
"version": "1.0.0",
|
||||
"author": "Frédéric Matte <fmatte@gmail.com>",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.tranche.ca/fmatte/sortby"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue