1.0.0 • Published 3 years ago

clean-object-js v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

clean-object-js

A library which --removed all key-value pairs which consist value as null or undefined, if object is passed as obj(i.e. argument) --removed all elements eluals to null or undefined, if array is provided --return the same if is of any other type

PARAMS: object -> {obj, consideDeeperLevel, discardFalsyValues}

NOTE: --consideDeeperLevel is by default true --discardFalsyValues is by default false --these values will not be removed 0, false, '' if we don't pass discardFalsyValues != true

Let's take an example:

const obj = {
    name: 'foo',
    surname: '',
    a: null,
    b: undefined,
    val: 0,
    val1: false,
    array: [null, 1, '', 0, false, undefined, 'aman'],
    nexted: {
        name: 'foo',
        surname: '',
        array: [null, 1, '', 0, false, undefined, 'aman'],
        a: null,
        b: undefined,
        nexted: {
            name: 'foo',
            surname: '',
            a: null,
            b: undefined,
        }
    }
}

1. const result = cleanObj({obj, consideDeeperLevel: false})

{ name: 'foo',
  surname: '',
  val: 0,
  val1: false,
  array: [ 1, '', 0, false, 'aman' ],
  nexted:
   { name: 'foo',
     surname: '',
     array: [ null, 1, '', 0, false, undefined, 'aman' ],
     a: null,
     b: undefined,
     nexted: { name: 'foo', surname: '', a: null, b: undefined } 
   } 
}

const result = cleanObj({obj, consideDeeperLevel: false, discardFalsyValues: true})

{ 
    name: 'foo',
    array: [ 1, 'aman' ],
    nexted: { 
        name: 'foo',
        surname: '',
        array: [ 1, '', 0, false, 'aman' ],
        nexted: { name: 'foo', surname: '' } 
    } 
}

2. const result = cleanObj({obj})

// OR

const result = cleanObj({obj, consideDeeperLevel: true})

{ name: 'foo',
  surname: '',
  val: 0,
  val1: false,
  array: [ 1, '', 0, false, 'aman' ],
  nexted:
   { name: 'foo',
     surname: '',
     array: [ 1, '', 0, false, 'aman' ],
     nexted: { name: 'foo', surname: '' } 
   } 
}

const result = cleanObj({obj, consideDeeperLevel: true, discardFalsyValues: true})

{ 
    name: 'foo',
    array: [ 1, 'aman' ],
    nexted: { 
        name: 'foo', 
        array: [ 1, 'aman' ], 
        nexted: { name: 'foo' } 
    } 
}

For Array

const arr = [null, 1, '', 0, false, undefined, 'aman']

const result1 = cleanObj({obj: arr})
const result2 = cleanObj({obj: arr, consideDeeperLevel: false})

[ 1, '', 0, false, 'aman' ]


const result3 = cleanObj({obj: obj1, discardFalsyValues: true})
[ 1, 'aman' ]