natsort
natsort copied to clipboard
sorting objects by property
trafficstars
Hey, thanks for creating this essential functionality for the JS/TS ecosystem. I have a feature request that I'd be willing to look into implementing as a PR, but I figured I'd raise an issue first to see if that's something that'd be appreciated.
I'd like to be able to sort an array of objects 'naturally' by some property:
const items = [
{
name: 'Foo',
created: '04/21/2021'
},
{
name: 'Bar',
created: '04/20/2021'
}
].sort(natsort({property: 'created'}))
Or even use an accessor function, which would be useful for nested items: [...].sort(natsort({property: (item) => item.nestedItem.created}))
I'd love to hear some thoughts.
@nmokkenstorm
var sorter = natsort();
items.sort(function(a, b) {
return sorter(a.created, b.created);
});