Implement the sortby

master
Frédéric Matte 2023-09-11 10:31:30 -04:00
parent 0d45d9aae8
commit a821e706cb
3 changed files with 40 additions and 0 deletions

21
index.js Normal file
View File

@ -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 }

6
package-lock.json generated Normal file
View File

@ -0,0 +1,6 @@
{
"name": "sortby",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}

13
package.json Normal file
View File

@ -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"
}
}