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 }