У меня есть дерево структурированный объект напримерПоиск объекта с определенным значением
var x = [{
id: 1,
children: [{
id: 11,
children: [],
}, {
id: 12,
children: [{
id: 121,
name:'jogn',
children: []
}]
}]
}, {
id: 2,
children: [],
}]
И я хотел бы найти объект с конкретным ID в нем. I производства
function printObj(obj , val) {
for(var i = 0; i < obj.length ; i++){
if(obj[i].id == val){
return obj[i];
}
if(obj[i].children.length > 0){
printObj(obj[i].children)
}
}
}
функция. Проблема заключается в том, когда я призываю его
var g = printObj(x , 121);
alert(x.name)
возвращает неопределенное вместо jogn altought, когда я совать некоторое предупреждение, если он findes установить значение это найти. Почему он возвращает неправильный объект?
что, если вы оповещения 'г. name' вместо 'x'? – csmckelvey
Кроме того, вы не возвращаете ничего из printObj (детей), чтобы рекурсивный результат просто исчез. – Shilly