首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从复杂的对象/数组结构中获取数据?

如何从复杂的对象/数组结构中获取数据?
EN

Stack Overflow用户
提问于 2017-08-01 19:34:34
回答 6查看 68关注 0票数 1

我试图从一个复杂的API结构中获取数据。如何从以下对象和数组中获取所有图像:

代码语言:javascript
复制
const x = { cars: [ 
    { types: 
      { 
        name: "VW", 
        image: [{ url: "http://www.lkjl.com" }] 
      } 
    }, 
    {...}, 
    {...} 
]};

我知道我可以像这样得到图像url:

代码语言:javascript
复制
x.cars[0].types.image[0].url

但是我怎么才能打印出所有的图像urls呢?

代码语言:javascript
复制
x.cars.map(item => {
   return(
       item.image[0].url; // this is wrong
   );
});

我需要在map函数中有另一个map吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-08-01 19:40:37

您可以通过映射url属性来使用Array#reduce

代码语言:javascript
复制
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);

票数 1
EN

Stack Overflow用户

发布于 2017-08-01 19:37:44

我想你错过了types

代码语言:javascript
复制
x.cars.map(item => {
   return(
       item.types.image[0].url;
   );
});
票数 0
EN

Stack Overflow用户

发布于 2017-08-01 19:38:54

我想你在map函数中没有访问到‘type’对象,它应该是这样的:

代码语言:javascript
复制
x.cars.map(item => {
   return(
       item.types.image[0].url; //this should work for you
   );
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45436682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档