natsort icon indicating copy to clipboard operation
natsort copied to clipboard

sorting objects by property

Open nmokkenstorm opened this issue 4 years ago • 1 comments
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 avatar Apr 21 '21 09:04 nmokkenstorm

@nmokkenstorm

var sorter = natsort();
items.sort(function(a, b) {
  return sorter(a.created, b.created);
});

bubkoo avatar Sep 15 '21 13:09 bubkoo