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];
                }
                                                        
    ...