Как найти нужное свойство с нужным значением?
У меня есть объект:
const obj = [{
tag: "div",
props: {
id: "div1"
},
children: [{
tag: "div",
props: {
id: "div2"
},
children: []
}, {
tag: "div",
props: {
id: "div3"
},
children: []
}]
}, {
tag: "div",
props: {
id: "div4"
},
children: []
}];
Мне нужно написать функцию, которая принимает 2 аргумента. Первый аргумент это объект для поиска, а второй аргумент это id. Возвращается объект с нужным id.
Примеры:
- searchElement(obj, "div2") -> {tag: "div", props: {id: "div2"}, children: []}
- searchElement(obj, "div4") -> {tag: "div", props: {id: "div4"}, children: []
Заранее спасибо!
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
У меня есть объект
Это все же массив...
Как найти нужное свойство с нужным значением?
Предложу такой вариант решения этой задачки...
const searchElement = (arr, id) => {
for (const o of arr) {
if (o.props.id === id) return o
const obj = searchElement(o.children, id)
if (obj) return obj
}
return null
}
const arr = [
{
tag: "div",
props: {
id: "div1"
},
children: [
{
tag: "div",
props: {
id: "div2"
},
children: []
},
{
tag: "div",
props: {
id: "div3"
},
children: []
}
]
},
{
tag: "div",
props: {
id: "div4"
},
children: []
}
];
console.log(searchElement(arr, "div2"))
//{tag: "div", props: {id: "div2"}, children: []}
console.log(searchElement(arr, "div4"))
//{tag: "div", props: {id: "div4"}, children: []