chi-react-keyed-file-browser
Version:
Folder based file browser given a flat keyed list of objects, powered by React.
19 lines (14 loc) • 469 B
JavaScript
const NUMBER_GROUPS = /(-?\d*\.?\d+)/g
function naturalSortComparer(a, b) {
const aa = String(a.name).split(NUMBER_GROUPS)
const bb = String(b.name).split(NUMBER_GROUPS)
const min = Math.min(aa.length, bb.length)
for (let i = 0; i < min; i++) {
const x = parseFloat(aa[i]) || aa[i].toLowerCase()
const y = parseFloat(bb[i]) || bb[i].toLowerCase()
if (x < y) return -1
else if (x > y) return 1
}
return 0
}
export { naturalSortComparer }