我有一個從名為blockInfo的物件獲取資料的表:
<table>
<thead>
<tr>
<th>Timestamp</th>
<th>Block #</th>
<th>Block Hash</th>
<th>Miner</th>
<th>Gas used</th>
<th>Txs #</th>
</tr>
</thead>
<tbody>
{blockInfo.map((block) =>
< tr >
<td >{timeSince(new Date(block.timestamp * 1000))}</td>
<td id="blockNumber">{block.number}</td>
<td id="blockHash" >{block.hash}</td>
<td>{block.miner}</td>
<td>{block.gasUsed}</td>
<td>{block.transactions.length}</td>
</tr>
)}
</tbody>
</table>
它生成該表:

我想通過從Block #列中的升序對該表進行排序,我嘗試.sort()以這種方式添加,但它不起作用:
<tbody>
{blockInfo.sort((a, b) => {
if (a > b) return 1;
if (a < b) return -10;
return 0;
}).map((block) =>
< tr >
<td >{timeSince(new Date(block.timestamp * 1000))}</td>
<td id="blockNumber">{block.number}</td>
<td id="blockHash" >{block.hash}</td>
<td>{block.miner}</td>
<td>{block.gasUsed}</td>
<td>{block.transactions.length}</td>
</tr>
)}
</tbody>
有誰我該怎么做?
uj5u.com熱心網友回復:
我相信錯誤在于您的排序功能。引數a和b每個代表blockInfo串列中的一個物件。因此,要使排序功能正常作業,您需要指定要排序的鍵。
試試這個代碼:
<tbody>
{blockInfo.sort((a, b) => {
if (a.number > b.number) return 1; // .number is added
if (a.number < b.number) return -10; // .number is added
return 0;
}).map((block) =>
< tr >
<td >{timeSince(new Date(block.timestamp * 1000))}</td>
<td id="blockNumber">{block.number}</td>
<td id="blockHash" >{block.hash}</td>
<td>{block.miner}</td>
<td>{block.gasUsed}</td>
<td>{block.transactions.length}</td>
</tr>
)}
</tbody>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/427511.html
標籤:javascript 反应 排序 html表
上一篇:基于javascript中的鍵值對物件對陣列進行排序和重新排列
下一篇:在Tcl中創建子串列和排序
