我正在努力使用 JavaScript 中的可选链接将 JSON 对象映射到Table
in React
。这是有效载荷:
{
"originating request": {
"id":1,
"name":"ali",
"markets": [
{
"name": "Winner",
"selections": [
{
"name": "Manchester United",
"probability": "1.0"
},
{
"name": "Tottenham Hotspur",
"probability": "0.0"
},
{
"name": "Arsenal",
"probability": "0.0"
}
]
},
{
"name": "Finish Last",
"selections": [
{
"name": "Manchester United",
"probability": "0.0"
},
{
"name": "Tottenham Hotspur",
"probability": "0.0"
},
{
"name": "Arsenal",
"probability": "1.0"
}
]
}
]
}
}
markets
以前,数组中只有一个对象,即Winner
市场。这是我针对该场景的解决方案,我将Winner
直接过滤并遍历表格:
return (
<div>
<Table striped bordered hover size="sm" responsive>
<thead>
<tr className="same-col-widths">
<th>Team Name</th>
<th>Winner</th>
</thead>
<tbody>
{simResult?.markets?.length
? simResult.markets
.find(t => t.name === "Winner")
.selections.map((selection, index) => (
<tr key={index}>
<td>{selection.name}</td>
<td>{selection.probability}</td>
</tr>
))
: null}
</tbody>
</Table>
</div>
)
但是,现在那里的Finish Last
市场刚刚被添加到markets
数组中。我还计划在未来增加更多的市场。我希望表头看起来像这样:
<thead>
<tr className="same-col-widths">
<th>Team Name</th>
<th>Winner</th>
<th>Finish Last</th>
</thead>
在一列中包含团队名称,以及在相关列中对应于正确市场的所有概率。这样做的最佳方法是什么?