поиск по массиву со вложенностью
есть массив с вложенными массивами groups. Нужно получить имя элемента из groups при условии, что group.code === code. Как это сделать ?
const arr =
[
{"id":"1","code":"111","name":"обувь","groups":[
{"id":"12","code":"123","name":"кроссовки"},
{"id":"2","code":"234","name":"туфли"}]},
{"id":"13","code":"222","name":"одежда", "groups":[
{"id":"15","code":"345","name":"брюки"},
{"id":"17","code":"456","name":"джинсы"}
]
}
]
const code = "456"
Мое решение находит нужный элемент, но я не знаю, как получить только имя
console.log(arr.find(el => el.groups.find(gr => gr.code === code)))
Ответы (1 шт):
Автор решения: Иван Ипатов
→ Ссылка
Пример решения через вложенный цикл, как предлагал Алексей.
const arr = [{
id: '1',
code: '111',
name: 'обувь',
groups: [{
id: '12',
code: '123',
name: 'кроссовки'
},
{
id: '2',
code: '234',
name: 'туфли'
}
]
},
{
id: '13',
code: '222',
name: 'одежда',
groups: [{
id: '15',
code: '345',
name: 'брюки'
},
{
id: '17',
code: '456',
name: 'джинсы'
}
]
}
]
const code = '456'
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].groups.length; j++) {
const nameOf = arr[i].groups[j].code
if (nameOf == code) {
console.log(arr[i].groups[j].name)
}
}
}