поиск по массиву со вложенностью

есть массив с вложенными массивами 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)
    }
  }
}

→ Ссылка