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