JSFiddle - React, Tailwind, and code Playground
JavaScript
let list = [
{
name: 'test1',
type: 'folder',
children:[
{
name: 'test2',
type: 'file'
}, {
name: 'test3',
type: 'folder',
children:[
{
name: 'test1',
type: 'file'
}
]
},
]
},{
name: 'test1',
type: 'folder',
children:[
{
name: 'test2',
type: 'file'
}, {
name: 'test3',
type: 'folder',
children:[
{
name: 'test1',
type: 'file'
}
]
},
]
}
];
const search = (name, list) => {
// write your code
let temp = [];
function search2(na, obj) {
if (typeof obj.children === 'object' && obj.children.length) {
obj.children.forEach(item2 => {
search2(na, item2)
})
}
if ( obj.name === na) {
temp.push(obj)
// console.log('child', temp)
}
}
list.forEach((item) => {
search2(name, item)
})
return temp
}
console.log(search('test1', list))