Skip to content

amanmoar277/clean-object-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clean-object-js

A library which
--removes all key-value pairs which consist value as null or undefined, if object is passed as obj(i.e. argument)
--removes all elements equals to null or undefined, if array is provided to it
--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' ]


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published