Reset properties of an Object

by clemi

JavaScript

display = {
  current: {
    key1: 'value1',
    key2: ['a', 'b'],
    key3: 'value2'
  }
}

// Clone display object for exemple
let simple = JSON.parse(JSON.stringify(display)).current
let complex = JSON.parse(JSON.stringify(display))


// If you just want to reset a simple object
let reset = (obj) => {
	Object.keys(obj).map(key => {
    if (obj[key] instanceof Array) obj[key] = []
    else obj[key] = undefined
  })
}


// If you want to reset a complex object
let recursiveReset = (obj) => {
	Object.keys(obj).map(key => {
  	// Test if it's an Object
  	if (obj[key] === Object(obj[key])) {
    	recursiveReset(obj[key])
      return
    }
    if (obj[key] instanceof Array) obj[key] = []
    else obj[key] = undefined
	})
}

reset(simple)
console.log('simple reset', simple)

recursiveReset(complex)
console.log('complex reset', complex)