【发布时间】:2021-12-07 18:06:50
【问题描述】:
我正在阅读正在构建的过程
https://developers.cardano.org/docs/integrate-cardano/listening-for-payments-cli/#process-utxo-table
我对这部分的结果感到困惑:
// Calculate total lovelace of the UTXO(s) inside the wallet address
const utxoTableRows = rawUtxoTable.data.trim().split('\n');
let totalLovelaceRecv = 0;
let isPaymentComplete = false;
for (let x = 2; x < utxoTableRows.length; x++) {
const cells = utxoTableRows[x].split(" ").filter(i => i);
totalLovelaceRecv += parseInt(cells[2]);
}
据我所知,直到 .split(" ") 部分,该表已被拆分为 utxoTableRows 数组中的至少 2 个项目,因为第一行是我们不感兴趣的标题,第二行是第一个 utxo 正在处理中。 .split(" ") 然后拆分有空格的行,但我不知道过滤器部分的作用。查询utxo 表如下所示:
| TxHash | TxIx | Amount |
|---|---|---|
| dfb99f8f103e56a856e04e087255dbaf402f3801acb71a6baf423a1054d3ccd5 | 0 | 1749651926 |
如您所见,有两行。我完全迷失在过滤器组件上。我在以下命令parseInt(cells[2]) 中迷失了更多。我知道它以某种方式将金额作为字符串并转换为整数。 [2] 引用让我失望,因为它不是必须是 [3],因为数量是在该行中拆分的第三个项目?我唯一能想到的是.filter(i => i)抛出TxHash,然后将TxIx(在本例中为0)保存在cell[1]中,并将金额(在本例中为1749651926)保存在cell[2]中,都作为字符串。
感谢您的帮助。
【问题讨论】:
-
这就是为什么我更喜欢
.filter(Boolean)或非常明确 (.filter(i => i !== ''))。
标签: javascript arrays parsing filter cardano