ReactJS:循环对象

时间:2017-04-23 18:01:57

标签: javascript reactjs object mapping

我很反应,我很困惑如何将我的对象映射到我的反应组件

我的对象看起来像这样

const LinkValue = [{
        'XYZ':['About Us','Core Values','Careers','contact Us']
    },{
        'Help':['Payments','Saved Cards','FAQ']
    }]

反应组件

const LinkLoop = map(LinkValue,(value,key)=>{
        return(
                <div className="col-md-2 col-sm-3 col-xs-6" key={key}>
                <div className="quicklinks-card">
                    <h3>{value[key]}</h3>
                    <ul className="list-unstyled">

                        <li>
                            <a href="#">value[key]</a>
                        </li>
                        <li>
                            <a href="#">value[key]</a>
                        </li>
                        <li>
                            <a href="#">value[key]</a>
                        </li>
                    </ul>
                </div>
            </div>
        )
    })

我不清楚如何遍历我的对象,我的对象值也不是相同的长度

预期产出

<div className="col-md-2 col-sm-3 col-xs-6">
    <div className="quicklinks-card">
        <h3>XYZ</h3>
            <ul className="list-unstyled">

                  <li>
                       <a href="#">About Us</a>
                  </li>
                  <li>
                        <a href="#">Core Values</a>
                  </li>
                   <li>
                        <a href="#"> Careers </a>
                   </li>
                  <li>
                        <a href="#">contact Us</a>
                   </li>
             </ul>
     </div>
</div>
<div className="col-md-2 col-sm-3 col-xs-6">
    <div className="quicklinks-card">
        <h3>XYZ</h3>
            <ul className="list-unstyled">


                  <li>
                        <a href="#"> Payments </a>
                  </li>
                   <li>
                        <a href="#"> Saved Cards </a>
                   </li>
                  <li>
                        <a href="#"> FAQ </a>
                   </li>
             </ul>
     </div>
</div>

我想在我的对象中循环并将它放在我的组件中..

提前致谢。

1 个答案:

答案 0 :(得分:1)

您应该使用Object.keys(obj)[0]获取第一个密钥,然后从这些密钥使用map映射数组

    const LinkValue = [{
            'XYZ':['About Us','Core Values','Careers','contact Us']
        },{
            'Help':['Payments','Saved Cards','FAQ']
        }]

    const LinkLoop = LinkValue.map((value,key)=>{
            return(
                     <div className="col-md-2 col-sm-3 col-xs-6" key={key}>
                            <div className="quicklinks-card">
                            <h3>{Object.keys(value)[0]}</h3>
                             <ul className="list-unstyled">
                                  {value[Object.keys(value)[0]].map((obj, idx) => (
                                      <li key={idx}>
                                          <a href="#">{obj}</a>
                                       </li>

                                  ))}

                             </ul>
                        </div>
                   </div>
            )
        })