Update Object

by Jay Scott. ANDERSON

JavaScript

function update (targetObject, obj) {
  Object.keys(obj).forEach(function (key) {
    if ( 'object' === typeof obj[key] && !Array.isArray(obj[key]) ) {
    	update(targetObject[key], obj[key])
    }
    else if ( 'string' === typeof obj[key] || 'number' === typeof obj[key] ) {
      targetObject[key] = obj[key]
    }
  })
}

var currentObject = {
    someValue : "value",
    myObject : {
        attribute1 : "foo",
        attribute2 : "bar"
    }
}

var updateObject = {
    myObject : {
        attribute2 : "hello world"
    }
}

update(currentObject, updateObject)
console.log('attribute1: ', currentObject.myObject.attribute1)
console.log('attribute2: ', currentObject.myObject.attribute2)