Получение вложенного значения Objects из массива вложенных свойств

У меня есть ситуация, когда мне нужно сжать два объекта вместе, сохраняя оба значения. Я могу перебрать оба объекта и создать массив всех ключей.

    var traverse = function (obj, chain) {

        for (var prop in obj) {
            if (obj.hasOwnProperty(prop)) {

                var tempChain = [].concat(chain || []);
                tempChain.push(prop);

                if (typeof obj[prop] === 'object') {
                    traverse(obj[prop], tempChain);
                }
                console.log(tempChain);
            }
        }
    };

Проходя в следующем:

    traverse({
        'a': {
            'b': 'hello world',
            'b1': 'hello world 1',
            'c': {
                'd': 'dello'
            }
        }
    })

Вернет мне:

[a]
[a,b]
[a,b1]
[a,c]
[a, c, d]

Итак, теперь у меня есть массив вложенных свойств в объекте. Как я могу получить доступ к obj [[a, c, d]]? Я знаю, что могу решить проблему с помощью eval, но я не могу доверять контенту.

eval('window.' + ['a','c','d'].join('.')); 

Если я смогу пройтись по этому массиву и проверить, существует ли свойство в обоих из них, то создам новый объект из объединенных «сжатых» значений.

Ответы на вопрос(1)

Ваш ответ на вопрос