Как получить данные из сложной структуры объекта / массива?

1

Я пытаюсь получить данные из сложной структуры API. Как получить все изображение из следующих объектов и массивов:

const x = { cars: [ 
    { types: 
      { 
        name: "VW", 
        image: [{ url: "http://www.lkjl.com" }] 
      } 
    }, 
    {...}, 
    {...} 
]};

Изображение 174551

Я знаю, что могу получить URL-адрес изображения следующим образом:

x.cars[0].types.image[0].url

Но как я могу распечатать все URL-адреса изображений?

x.cars.map(item => {
   return(
       item.image[0].url; // this is wrong
   );
});

Нужно ли иметь другую карту внутри функции карты?

  • 0
    Пожалуйста, опубликуйте возвращаемый объект, чтобы мы могли видеть, как вписывается изображение.
  • 0
    будет несколько изображений?
Теги:

6 ответов

1
Лучший ответ

Вы можете использовать Array#reduce с отображением свойства url.

const
    x = { cars: [{ types: { name: "VW", image: [{ url: "http://www.lkjl.com" },{ url: "http://www.alkjl.com" }] } }, { types: { name: "Tata", image: [{ url: "http://www.lskal.com" },{ url: "http://www.lkfjl.com" }] } }] },
    images = x.cars.reduce((r, item) => r.concat(item.types.image.map(i => i.url)), []);

console.log(images);
0

x.cars.map(item => item.types.image [0].url)

0

Я думаю, вы пропустили types:

x.cars.map(item => {
   return(
       item.types.image[0].url;
   );
});
0

Внутри массива cars вас есть массив image внутри объекта types Таким образом, вы должны перебирать массивы для распечатки всех изображений.

См. Код ниже.

const x = { cars: [ 
    { types: 
      { 
        name: "VW", 
        image: [{ url: "http://www.lkjl.com" }] 
      } 
    }, 
    { types: 
      { 
        name: "VW", 
        image: [{ url: "http://www.lkjl12.com" }] 
      } 
    }
]};

x.cars.forEach(car => {
  car.types.image.forEach( i => console.log(i.url));
})
0

я думаю, вы пропустили доступ к объекту "типы" в своей функции карты, это должно выглядеть так:

x.cars.map(item => {
   return(
       item.types.image[0].url; //this should work for you
   );
});
-2

вы попробуете этот путь?

x.cars.map((item, key) => {
 return(
   item.types.image[0].url;
  //you're missing 'types'
 );
});

Я надеюсь, что это может вам помочь.

  • 0
    Без разницы. Индекс массива image не имеет ничего общего с индексом массива cars

Ещё вопросы

Сообщество Overcoder
Наверх
Меню