@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)
    });
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 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;

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

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽