JSFiddle - React, Tailwind, and code Playground

HTML

<script>
function merge_without_override(master, temp) {
	for(var key in temp) {
  	if( !temp.hasOwnProperty(key) )
    	continue;
  	if(master[key] !== undefined) // key already exists in master.
    	continue; 

    	master[key] = Object.assign(temp[key]); // key doesnt exist, assign it.
  }
}

var master = {
    "gnome":{
        "child":{
            name:"child",
            race:"gnome"
        },
        "youngling":{
            name:"youngling",
            race:"gnome"
        }
    },
    "human":{}
};
var temp = {
    "gnome":{
        "man":{
            name:"man",
            race:"gnome"
        }
    }
};
console.log("master before merge");
console.log(master);
merge_without_override(master["gnome"], temp["gnome"]);
console.log("master after merge");
console.log(master);

</script>