I want to add data into an object, and my object contains nested data. Example data:
pageviewEvent {
  client: "clientName",
  page {
    document_referrer: 'some http refer header data goes here',
    window_height: 1920,
    window_width: 1200
  }
}
Some data is undefined or null and I do not want to add this undefined/null data into the object.
I made a function that works to add data to the object conditionally (if not undefined) but I can't figure out how to add data to nested objects in the function?
I could just make a bunch of if statements, but figure it's better to put the condition test into a function to reduce code size.
Example code with comment showing thinking of what I am trying but doesn't work:
//function to check if variable undefined or null, if not -> add to pageviewEvent arrayKey, variableName
function isUndefinedNull(arrayKey, variableName) {
    var evalVariableName = eval(variableName);
    if (evalVariableName !== undefined && evalVariableName !== null && evalVariableName !== "") {
        console.log(arrayKey);
        console.log(variableName);
        pageviewEvent[arrayKey] = evalVariableName;
        //array key could be nested, for instance pageview[page][title] or pageview.page.tile
    }
}
//make event array  
const pageviewEvent = { }
//add static data
pageviewEvent.client = 'neguse';
//if not null or undefined add data   
isUndefinedNull('referrer.full', 'document.referrer');
//want to put data into object pageviewEvent.referrer.full or pageviewEvent[referrer][full]
Thanks for any help. I feel like this answer can help but I can't figure it out.
 
     
    