Skip to content

Replacements for sort-object

Object.entries and Array.sort (native)

For simple cases:

ts
import sortObj from 'sort-object'

const sorted = sortObj(object) 

// Ascending A→Z
const sorted = Object.fromEntries( 
  Object.entries(object).sort((a, b) => a[0].localeCompare(b[0])) 
) 

Replicating sortBy (function returns an ordered key list):

ts
import sortObj from 'sort-object'

const sorted = sortObj(object, { 
  sortBy: (obj) => { 
    const arr = [] 
    Object.keys(obj).forEach((k) => { 
      if (obj[k].startsWith('a')) 
        arr.push(k) 
    }) 
    return arr.reverse() 
  } 
}) 

const sortBy = (obj) =>
  Object.keys(obj) 
    .filter((k) => obj[k].startsWith('a')) 
    .reverse() 
const sorted = Object.fromEntries( 
  sortBy(object).map((k) => [k, object[k]]) 
) 

sort-object-keys

sort-object-keys is zero‑dependency and matches common sort-object use cases (custom order array or comparator).

ts
import sortObj from 'sort-object'
import sortObjectKeys from 'sort-object-keys'

// Default A→Z
const sorted = sortObj(object) 
const sorted = sortObjectKeys(object) 

// With comparator
const sortedByCmp = sortObj(object, { sort: (a, b) => a.localeCompare(b) }) 
const sortedByCmp = sortObjectKeys(object, (a, b) => a.localeCompare(b)) 

sortobject

sortobject is zero‑dependency and deeply sorts nested objects.

ts
import sortObj from 'sort-object'
import sortobject from 'sortobject'

const sorted = sortObj(object) 
const sorted = sortobject(object) 

Released under the MIT License. (ffa30c16)