我有一个对象数组,我想在每个对象中打印每个元素的内容,我已经尝试了这个(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'}
答案 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));