Я пытаюсь эффективно проверить многослойные объекты json, которые могут иметь одно или несколько неопределенных родительских свойств в зависимости от сценария.
Это пример и объект только двух уровней свойств:
scenarioArray = [
{color:{blue:'yes'}},
{color:{green:'no'}},
{colour:{blue:'yes'}} ]; //colour instead of color
Поэтому я хочу наиболее эффективно определить цвет сценария
let color;
let s = randomScenario; //random scenario from the scenarioArray
if(s.color != undefined && s.color.blue != undefined){
color = s.color.blue;
}else if (s.color != undefined && s.color.green != undefined){
color = s.color.green;
}else if (s.colour != undefined && s.colour.blue !=undefined){
color = s.colour.blue;
};
Этот код техническиработает, это просто грязно.
Когда вы экстраполируете это на объекты с 4-5 уровнями свойств, операторы if становятся громоздкими и нечитаемыми.
Мне бы очень хотелось посоветовать, как это просто.
примеры реальных объектов json:
addendum.contract.buyerInformation.name
addendum.contract.contract.buyerInformation.name
addendum.contract.purchaser.buyerFirstName
addendum.contract.data.purchaser.buyer.name
используемые платформы / библиотеки: AngularJS Lodash (открыт для любых предлагаемых библиотек, которые могут сделать это более эффективным)
PS пожалуйстадайте мне знать, если это слишком открытый конец вопроса для stackOverflow ...