JSFiddle - React, Tailwind, and code Playground
JavaScript
function extendObjects() {
var newObject = {};
var overwriteValues = false;
var overwriteObjects = false;
for (var indexArgument = 0; indexArgument < arguments.length; indexArgument++) {
if (typeof arguments[indexArgument] !== 'object') {
if (arguments[indexArgument] == 'overwriteValues_True') {
overwriteValues = true;
} else if (arguments[indexArgument] == 'overwriteValues_False') {
overwriteValues = false;
} else if (arguments[indexArgument] == 'overwriteObjects_True') {
overwriteObjects = true;
} else if (arguments[indexArgument] == 'overwriteObjects_False') {
overwriteObjects = false;
}
} else {
extendObject(arguments[indexArgument], newObject, overwriteValues, overwriteObjects);
}
}
function extendObject(object, extendedObject, overwriteValues, overwriteObjects) {
for (var indexObject in object) {
if (typeof object[indexObject] === 'object') {
if (typeof extendedObject[indexObject] === "undefined" || overwriteObjects) {
extendedObject[indexObject] = object[indexObject];
}
extendObject(object[indexObject], extendedObject[indexObject], overwriteValues, overwriteObjects);
} else {
if (typeof extendedObject[indexObject] === "undefined" || overwriteValues) {
extendedObject[indexObject] = object[indexObject];
}
...