это исходные данные. Я хочу использовать «привет» в источнике, найти «вверх», наконец-то, чтобы получить массив «[Макс, мин]» (например, многократного дерево, найти корни)Как я могу использовать функцию рекурсии для обработки массива?
var obj = {
'hello': {
"up": "world",
"down": "ccc"
},
'world': {
"up": ["max","min"],
"down": "hello"
},
'max': {
"up": null,
"down": "world"
},
'min': {
"up": null,
"down": "world"
},
'ccc': {
"up": "hello",
"down": null
}
}
Я использую рекурсию но код ниже не работает. Он возвращает «undefined». (если «вверх» не является массивом, функция работает.)
function findRoot(source,key){
var up = source[key]['up'];
if(up==null){
return key
}else{
if(Object.prototype.toString.call(up)=='[object Array]'){
up.forEach(function(d){
return findRoot(source,d);
})
}else{
return findRoot(source,up)
}
}
}
Как я могу исправить этот код?
Не могли бы вы добавить ожидаемый результат? – cjds
Цель функции не ясна. – plalx