Javascript 用于返回未定义的嵌套对象的递归函数
我在一个嵌套的对象中循环,寻找一个特定的对象,如果我找到了,我会做一些事情。我可以让它为第一个嵌套工作,但之后的任何嵌套我都会得到一个未定义的值Javascript 用于返回未定义的嵌套对象的递归函数,javascript,Javascript,我在一个嵌套的对象中循环,寻找一个特定的对象,如果我找到了,我会做一些事情。我可以让它为第一个嵌套工作,但之后的任何嵌套我都会得到一个未定义的值 让myObj=[{ id:1, 儿童:[{ id:1.1, 儿童:[] }, { id:1.2, 儿童:[] } ] }, { id:2, 儿童:[{ id:2.1, 儿童:[] }, { id:2.2, 儿童:[] } ] } ] 函数addToObj(itemToAdd、parentId、obj){ for(设i=0;i
让myObj=[{
id:1,
儿童:[{
id:1.1,
儿童:[]
},
{
id:1.2,
儿童:[]
}
]
},
{
id:2,
儿童:[{
id:2.1,
儿童:[]
},
{
id:2.2,
儿童:[]
}
]
}
]
函数addToObj(itemToAdd、parentId、obj){
for(设i=0;i addToObj(项目ToAdd2.1,myObj)代码>您需要使用递归搜索的返回值:如果存在,则返回:
for (let i = 0; i < obj.children.length; i++) {
const possibleResult = search(obj.children[i], id);
if (possibleResult) {
return possibleResult;
}
}
for(设i=0;i
让myObj=[{
id:1,
儿童:[{
id:1.1,
儿童:[]
},
{
id:1.2,
儿童:[]
}
]
},
{
id:2,
儿童:[{
id:2.1,
儿童:[]
},
{
id:2.2,
儿童:[]
}
]
}
]
函数addToObj(itemsToAdd、parentId、obj){
for(设i=0;i addToObj(项目ToAdd2.1,myObj)代码>您需要使用递归搜索的返回值:如果存在,则返回:
for (let i = 0; i < obj.children.length; i++) {
const possibleResult = search(obj.children[i], id);
if (possibleResult) {
return possibleResult;
}
}
for(设i=0;i
让myObj=[{
id:1,
儿童:[{
id:1.1,
儿童:[]
},
{
id:1.2,
儿童:[]
}
]
},
{
id:2,
儿童:[{
id:2.1,
儿童:[]
},
{
id:2.2,
儿童:[]
}
]
}
]
函数addToObj(itemsToAdd、parentId、obj){
for(设i=0;i addToObj(项目ToAdd2.1,myObj)代码>代码中有两个问题
- 如果
(obj.id==id)
为false
,则在循环中您不返回任何内容
- 您应该检查循环之前是否存在
obj.children
让myObj=[
{
id:1,
儿童:[
{
id:1.1,
儿童:[]
},
{
id:1.2,
儿童:[]
}
]
},
{
id:2,
儿童:[
{
id:2.1,
儿童:[]
},
{
id:2.2,
儿童:[]
}
]
}
]
代码中有两个问题:
-列表项
函数addToObj(itemToAdd、parentId、obj){
对于(设i=0;i),代码中有两个问题
- 如果
(obj.id==id)
为false
,则在循环中您不返回任何内容
- 您应该检查循环之前是否存在
obj.children
让myObj=[
{
id:1,
儿童:[
{
id:1.1,
儿童:[]
},
{
id:1.2,
儿童:[]
}
]
},
{
id:2,
儿童:[
{
id:2.1,
儿童:[]
},
{
id:2.2,
儿童:[]
}
]
}
]
代码中有两个问题:
-列表项
函数addToObj(itemToAdd、parentId、obj){
对于(设i=0;i当如果(obj.id==id)
为false时,没有返回值当如果(obj.id==id)
为false时,没有返回值