如何使用es6

时间:2018-02-20 13:59:47

标签: javascript arrays reactjs

我有一个对象数组,我想在每个对象中打印每个元素的内容,我已经尝试了这个(Render Object properties in React)中提供的方法,我得到的只是一个元素列表没有它的价值

state={
  machines: [{
        MachineName: 'A1',
        region: 'west', 
        zones:'west-01',
        ipAddr:'1.1.1.1',
        subnet:'test'}, 
      {
        MachineName: 'A2',
        region: 'west', 
        zones:'west-01',
        ipAddr:'1.1.1.2',
        subnet:'test2'

}]

}
      render() {
const machinespc=this.state.machines.map((value,key)=>{

  return (
    <div>
        <div className="col-md-4" key={key}>
            <div className="dashboard-info">

                {Object.keys(value).map((val, k) => {
                    return (<h4 k={k}>{val}</h4>)
                    })
                }

            </div>
        </div>
    </div>
)

})
  return ( 
       {} machinespc               )

,输出如下,

    MachineName
    region 
    zones
    ipAddr
    subnet 

所以我想要的是打印对象内的每个元素的值,如下所示:

     A1
    west
    west-01
    1.1.1.1
    test'}

3 个答案:

答案 0 :(得分:2)

只需使用Object.entries:

{Object.entries(value).map(([key, value]) => {
      return (<h4>{key} : {value}</h4>);
}) }

答案 1 :(得分:1)

您只需要查看val

中的值
{Object.keys(value).map((val, k) => {
    const theValue = value[val];
    return (<h4 key={k}>{theValue}</h4>)
    })
}

Object.keys(value)将返回所有对象键的数组。然后,您需要获取值(value[val])。

答案 2 :(得分:1)

问题是你正在运行密钥循环,所以你需要使用该密钥来获取值,如下所示:

{
    Object.keys(value).map((val, k) => <h4 k={k}>{value[val]}</h4>)
}

或者您可以使用Object.values,它将返回所有值的数组,如下所示:

{
    Object.values(value).map((val, k) => <h4 k={k}>{val}</h4>)
}

检查此代码段,您会得到一个更好的主意:

let obj = {a:1, b:2};

console.log("keys array = ", Object.keys(obj));

console.log("values array = ", Object.values(obj));