Matriz de cópia profunda de objetos aninhados em javascript [duplicado]

Esta pergunta já tem uma resposta aqui:

Qual é a maneira mais eficiente de clonar profundamente um objeto em JavaScript? 67 respostas

Estou tentando copiar profundamente a matriz de objetos aninhados em javascript. Minha matriz fica assim

var arr = [{name:"adam",age:"21"},
    {name:"freddie",age:"35",children:[{name:"mercury",age:"25"}]},
    {name:"jim",age:"35",children:[{name:"morrison",age:"25",children:[{name:"some", age:"40"}]}]}
    ];

Eu quero fazer uma cópia profunda de cada objeto dentro da matriz que é, eu quero criar uma cópia exata de arr em nova matriz que não deve ter referência a objeto. A profundidade da matriz também é desconhecida, pois a matriz filha pode estar em qualquer nível. Eu passei por este linkCópia de uma matriz de objetos para outra matriz sem referência a objeto em javascript (cópia profunda) mas isso não me ajudou. Pesquisei no Google e encontrei algumas soluções no jQuery, mas isso não me ajudou, pois não tenho conhecimento do jQuery.

Eu também tentei implementá-lo com recursão, mas isso não está funcionando muitohttp://ideone.com/kJi5X3

Eu quero fazê-lo em javascript apenas sem usar jQuery ou qualquer coisa. Eu sou novo no JavaScript, por isso posso ter perdido se houver alguma biblioteca ou método simples para fazer isso. Por favor me ajude a resolver este problema. Desde já, obrigado.

questionAnswers(1)

yourAnswerToTheQuestion