javascript - 如何返回对象传递对象和值
问题描述
myObj = {
id: 1,
children: [
{
id: 2,
children: [
{
id: 3
}
]
},
{
id: 4,
children: [
{
id: 5,
children: [
{
id: 6,
children: [
{
id: 7,
}
]
}
]
}
]
},
]
}
对于上述对象如何创建函数。在函数中,我将传递对象和 id 值重新调整该对象。例如:
myFunction(myObj,4)
return:
{
id: 4,
children: [
{
id: 5,
children: [
{
id: 6,
children: [
{
id: 7,
}
]
}
]
}
}
}
myFunction(myObj,6)
return
{
id: 6,
children: [
{
id: 7,
}
]
}
myFunction(myObj,7)
return
{
id: 7,
}
解决方案
你可以试试这个
myObj = { id: 1, children: [ { id: 2, children: [ { id: 3 } ] }, { id: 4, children: [ { id: 5, children: [ { id: 6, children: [ { id: 7, } ] } ] } ] }, ] }
ob=[]
function myfunc(myObj,n){
if(myObj.id==n) return myObj
else if(myObj.children){
myObj.children.forEach(o=>{
if(o.id==n) ob.push(o)
else myfunc(o,n)
})
}
return ob[0]
}
console.log(myfunc(myObj,5))
推荐阅读
- filter - 在 Excel 2016 中使用多列上的相同日期范围进行筛选
- javascript - 从 JSON 中的文件名组装 JSON 文件的 Grunt 任务
- sql - SQL选择省略倍数
- actions-on-google - Google 助理 - 操作未获批准
- c++ - 如何为给定的 boost::spirit 语法向用户提供高级自动完成建议?
- avr - 如何使用 UART 在 avr(atmega16/32) 上连接多个设备?
- react-native - 反应导航如何为每个选项卡动态更改标题导航标题?
- php - 在 PHP 中获取参数和查询
- image-processing - 如何使用带有 FFMPEG 的图像创建图像?
- android - Android 将数据读入内存