ссылка Juhana превосходен, но и немного более сложной проблемой, чем тот, который вы имеете здесь. Вот мое взятие (https://jsfiddle.net/gm32f6fp/3/):
var object = {
prop1: {
prop2: {
foo: 1
}
}
};
function get(object, key) {
var keys = key.split('.');
for (var i = 0; i < keys.length; i++) {
if (!object.hasOwnProperty(keys[i])) {
return null;
}
object = object[keys[i]];
}
return object;
}
console.log(get(object, 'prop1.prop2'));
console.log(get(object, 'prop1.prop3'));
Идея заключается в том, чтобы взять связку ключей, разделить его на основе точки. Тогда у вас есть произвольно большой массив ключей, поэтому мы берем каждый ключ один за другим и погружаемся в объект. (Если мы окажемся в тупике, мы выручим.)
Приветствие Мэтью, я не понимаю, как это возвращает вложенные свойства? –