首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历对象的对象

遍历对象的对象
EN

Stack Overflow用户
提问于 2018-01-03 10:36:48
回答 2查看 200关注 0票数 0

你好,我正在尝试迭代我从我的数据库中获得的一些数据,它是一个对象的对象

代码语言:javascript
复制
this.state.data: {
  someGuy:{  
    cardHeading:"someHeading"
    email:"somemail@gmx.de"
    begin:"13-02-2018"
    end:"15-02-2018"
    message:"some Message"
    days: "2 Tage"
    turnover: 123
    url:"someUrl"
  },
  secondGuy: {
    cardHeading:"secondHeading"
    email:"second@gmx.de"
    begin:"13-03-2018"
    end:"15-04-2018"
    message:"second Message"
    days: "many days"
    turnover: 321
    url:"someUrl"
  }
}

现在,我尝试在一个react-bootstrap Media组件中映射这个数据

代码语言:javascript
复制
{ this.state.data.map((d) => {
    return(
      <Media>
        <Media.Left align="top">
          <img width={64} height={64} src={d.url} alt="placeholder thumbnail"  />
        </Media.Left>
        <Media.Body>
          <Media.Heading>{d.cardHeading}</Media.Heading>
          <p>{d.begin}</p>
          <p>{d.end}</p>
          <p>{d.days}</p>
          <p>{d.turnover}</p>
          <p>{d.email}</p>
          <p>{d.message}</p>
        </Media.Body>
      </Media>
    )
  })
}

我知道我可以使用map遍历一个数组。我如何在对象中做到这一点?提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2018-01-03 10:48:14

使用Object.keys,您将获得对象键的数组,在本例中将为["someGuy", "secondGuy"],现在您可以迭代它们并获得父对象的所有对象。

您可以这样做:

代码语言:javascript
复制
render () {
  const { data } = this.state
  const keys = Object.keys(data)
  return keys.map((key) => {
    const d = data[key]
    return (
      <Media>
        <Media.Left align="top">
          <img width={64} height={64} src={d.url} alt="placeholder thumbnail" />
        </Media.Left>
        <Media.Body>
          <Media.Heading>{d.cardHeading}</Media.Heading>
          <p>{d.begin}</p>
          <p>{d.end}</p>
          <p>{d.days}</p>
          <p>{d.turnover}</p>
          <p>{d.email}</p>
          <p>{d.message}</p>
        </Media.Body>
      </Media>

    )
  })
}
票数 0
EN

Stack Overflow用户

发布于 2018-01-03 10:48:14

您可以尝试使用Object.getOwnPropertyNames()。它以数组的形式返回对象的所有键的名称,然后您可以使用object[]来获取该值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48070456

复制
相关文章

相似问题

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