@Quambaras

Как получить остальные значения зная только одно?

const nameCity = "Name12";

const arr = [{
    name: "Name",
    region: [
        {name: "Name1", cities:[
            {name:"Name11", l:1},
            {name:"Name12", l:2},
            {name:"Name13", l:3}
        ]},
        {name: "Name2", cities:[
            {name:"Name21", l:4},
            {name:"Name22", l:5},
            {name:"Name23", l:6}
        ]},
        {name: "Name3", cities:[
            {name:"Name31", l:7},
            {name:"Name32", l:8},
            {name:"Name33", l:9}
        ]}                  
]
}]


есть значение nameCity. как получить значение l, зная nameCity? я пробовал что-то вроде этого, но явно не правильно

arr.forEach(e => {
      if(e === nameCity)
      console.log(e.l)
    });
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 2
Nolis
@Nolis
it-гопник
построение данных странное, но в общем - вот:
const arr = [{
    name: "Name23",
    region: [
        {name: "Name1", cities:[
            {name:"Name11", l:1},
            {name:"Name12", l:2},
            {name:"Name13", l:3}
        ]},
        {name: "Name2", cities:[
            {name:"Name21", l:4},
            {name:"Name22", l:5},
            {name:"Name23", l:6}
        ]},
        {name: "Name3", cities:[
            {name:"Name31", l:7},
            {name:"Name32", l:8},
            {name:"Name33", l:9}
        ]}                  
]
}]

arr[0].region.forEach((element) => {
  element.cities.forEach((zelement) => {
    if (arr[0].name === zelement.name) {
      console.log(zelement)
    }
  })
})
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Костыльно:
let L = arr[0].region
  .map(reg => reg.cities
    .filter(city => city.name === cityName)
  )
  .filter(arr => arr.length)
  [0][0].l;

Это если уверены, что точно найдётся.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы