Q:

How to recursively add unknown primitive elements? 

I want to be able to recursively add elements to a single object, and can't use the salutations[element] syntax as the value of each key will be determined by user input, so I need to primitively use salutations to set each object of greetings. 
greetings = { key: value, chain: {} }
salutations = greetings.chain
for(var i = 0; i < j; i++){
    salutations = { key: value, chain: {} }
    salutations = salutations.chain
}

I want the result on the first iteration to be greetings.chain = { key: value, chain: {} }, and the second iteration to be greetings.chain.chain = { key: value, chain: {} }, and so forth. 
Is this possible? 

A:

Your code almost works.  The parameters of the for loop are a little mixed up and you want to set the new chain before you reassign salutation in the loop:

let greeting = { key: 'value', chain: {} }
let salutations = greeting
for(var i = 0; i<5; i++ ){
   salutations.chain = { key: 'value', chain: {} }
   salutations = salutations.chain
}

console.log(greeting)
console.log(greeting.chain.chain.chain.chain)

