У меня есть массив вложенных объектов. Я должен проверить свойство ключевого объекта и вернуть его значение. Я сделал это, используя for l oop и проверяя свойство детей существует или нет. Но я думаю, что это не оптимальный способ сделать это. какой будет самый оптимальный способ сделать это. Вот кодовый массив данных объекта. Я должен получить текст для идентификатора 121.
var abc = [
{
id: 1,
text: 'One',
children: [
{id: 11, text: 'One One'},
{id: 12, text: 'One two',
children: [ {id: 121, text: 'one two one'} ]}
]
},
{
id: 2,
text: 'two'
}
];
Мой подход очень специфичен c к этой проблеме. Вот оно
for(var val of abc){
if(val.id == 121){
console.log('in first loop',val.text);
break;
}
if(Array.isArray(val.children)){
for(var childVal of val.children) {
if(childVal.id == 121){
console.log('in first child', childVal.text);
break;
}
if(Array.isArray(childVal.children)){
for(var nextChild of childVal.children){
if(nextChild.id == 121){
console.log('in next child', nextChild.text);
break;
}
}
}
}
}
}