-1

我正在阅读正在构建的过程

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(" "),该表已被拆分为数组中的至少 2 个项目。然后拆分有空格的行,但我不知道过滤器部分的作用。查询表如下所示:utxoTableRowsutxo.split(" ")utxo

TxHash 发送 数量
dfb99f8f103e56a856e04e087255dbaf402f3801acb71a6baf423a1054d3ccd5 0 1749651926

如您所见,有两行。我完全迷失在过滤器组件上。我在以下命令中迷失了更多parseInt(cells[2])。我知道它以某种方式将金额作为字符串并转换为整数。[2] 引用让我失望,因为它不是必须是 [3],因为数量是在该行中拆分的第三个项目?我唯一能想到的是.filter(i => i)抛出TxHash,然后将TxIx(在本例中为 0)cell[1]和金额(在本例中为 1749651926)保存cell[2]为字符串。

感谢您的帮助。

4

1 回答 1

1

filter将过滤掉false强制后回调返回的数组中的所有项目。

在这种情况下,filter删除数组中的所有空白字符串。如果项目是空字符串,则回调返回false,因为空字符串在强制为布尔值时是false(请参阅:假值)。

于 2021-10-20T23:28:10.473 回答