Я пытаюсь опросить многомерный объект и вернуть часть объекта на основе доступной мне переменной. У меня нет доступа ко многим объектным и массивным методам ES6.
Мой объект для опроса выглядит следующим образом:
const myObj = {
blue: {
three: {
star: {
foo: "this object is what I want",
foo2: "this object is what I want"
}
}
}
}
Как вы можете видеть, здесь есть три уровня. Я не знаю, какой может быть любой из ключей, за исключением star
. Я знаю, что хочу вернуть значение этого ключа, если он доступен.
Чтобы вернуть объект для ключа star
В настоящее время я использую Object.keys().map()
три раза, что работает, но я чувствую себя там должно быть более простое решение. Вот что у меня есть:
return Object.keys(myObj).map(function(colour) {
Object.keys(myObj[colour]).map(function(number) {
Object.keys(myObj[colour][number]).map(function(shape){
if (myObj[colour][number][shape] === "star") {
return myObj[colour][number][shape];
}
});
});
});
Есть ли что-то еще, что я могу использовать, чтобы пройти через этот объект, пока не нажму мой соответствующий ключ? А потом вернуть значение этого ключа?