Skip to content

Kikobeats/sort-keys-recursive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

724d10a · Oct 23, 2023
Oct 23, 2023
Nov 16, 2022
Feb 21, 2015
Feb 21, 2015
Oct 14, 2020
Feb 21, 2015
Oct 23, 2023
Aug 28, 2016
Oct 12, 2021
Oct 12, 2021
Dec 9, 2019
Oct 23, 2023

Repository files navigation

sort-keys-recursive

Last version Coverage Status NPM Status

Sort the keys of an object recursively.

Install

npm install sort-keys-recursive --save

Usage

const sortKeysRecursive = require('sort-keys-recursive')

const object = {
  c: 0,
  a: {
    c: ['c', 'a', 'b'],
    a: 0,
    b: 0
  },
  b: 0
}

const output = sortKeysRecursive(object)

console.log(output)

// {
//   a: {
//     a: 0,
//     b: 0,
//     c: ['a', 'b', 'c']
//   },
//   b: 0,
//   c: 0
// };

API

sortKeysRecursive(input, [options])

input

Required
Type: array|object

The collection to be sorted.

options

compareFunction

Type: function

Compare function.

ignoreArrayAtKeys

Type: array

Don't sort the Array at the specified keys, if any.

ignoreObjectAtKeys

Type: array

Don't sort the Object at the specified keys, if any.

Examples

ignoreArrayAtKeys and ignoreObjectAtKeys

const options = {
  ignoreArrayAtKeys: [ // Don't sort the Array at the specified keys, if any.
    'b'
  ],
  ignoreObjectAtKeys: [ // Don't sort the Object at the specified keys, if any.
    'a'
  ]
}

const input = {
  a: { // This Object will not be sorted.
    a: 'a',
    b: 'b',
    c: 'c',
    d: ['a', 'c', 'b']
  },
  b: ['a', 'c', 'b'], // This Array will not be sorted.
  d: ['a', 'c', 'b']
}

const output = sort(object, options)

console.log(output)

// {
//   a: {
//     a: 'a',
//     b: 'b',
//     c: 'c',
//     d: ['a', 'c', 'b']
//   },
//   b: ['a', 'c', 'b'],
//   d: ['a', 'b', 'c']
// }

compareFunction

You can pass a custom sort function as compareFunction. This function is passed to Javascript sort(), that sorts in alphabetical order by default. The custom function should return zero, a negative or positive value:

const reverseAlphabeticalSort = function (a, b) {
  return a < b
}

const options = {
  compareFunction: reverseAlphabeticalSort
}

const object = {
  a: {
    a: 0,
    c: ['c', 'a', 'b'],
    b: 0
  },
  c: 0,
  b: 0
}

const output = sort(object, options)

console.log(output)

// {
//   c: 0,
//   b: 0,
//   a: {
//     c: ['c', 'b', 'a'],
//     b: 0,
//     a: 0
//   }
// }

License

MIT © Kiko Beats