1.0.0 • Published 2 years ago
@diahkomalasarinpm/impedit-error-sapiente v1.0.0
@diahkomalasarinpm/impedit-error-sapiente
Sort the keys of an object recursively.
Install
npm install @diahkomalasarinpm/impedit-error-sapiente --saveUsage
const sortKeysRecursive = require('@diahkomalasarinpm/impedit-error-sapiente')
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
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
1.0.0
2 years ago