You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cardano UTXO处理代码中.filter(i => i)作用与cells[2]取值逻辑疑问

你的两个猜测完全正确,下面是具体的逻辑验证:

1. .filter(i => i) 作用说明

该方法的作用确实是剔除空格分割产生的空字符串:

  • Cardano CLI返回的UTXO表格为了排版对齐,列与列之间会使用多个空格分隔,如果你直接对单行内容调用split(" ")按单个空格分割,会生成大量无意义的空字符串元素
  • 示例:"a b c".split(" ") 得到的结果是 ['a', '', 'b', 'c']
  • .filter(i => i) 利用了JavaScript中空字符串属于假值的特性,会过滤掉所有空值,最终得到仅包含各列实际内容的干净数组。

2. cells[2] 取值逻辑验证

过滤后的数组下标确实和UTXO的三列一一对应:

  • 下标0:对应第一列 TxHash
  • 下标1:对应第二列 TxIx
  • 下标2:对应第三列 Amount
    举你给出的示例行验证:
    原始行内容:dfb99f8f103e56a856e04e087255dbaf402f3801acb71a6baf423a1054d3ccd5 0 1749651926
  • 按空格分割后得到:['dfb99f8f103e56a856e04e087255dbaf402f3801acb71a6baf423a1054d3ccd5', '', '0', '', '1749651926']
  • 过滤空值后得到:['dfb99f8f103e56a856e04e087255dbaf402f3801acb71a6baf423a1054d3ccd5', '0', '1749651926']
  • 取cells[2]转整数,正好对应该行UTXO的lovelace金额,累加所有行的该值就能得到地址收到的总金额。

另外你理解的「从下标2开始遍历有效UTXO行」逻辑也是正确的,CLI返回的UTXO表格第一行为表头,第二行为分隔线,只有从第三行(下标2)开始才是实际的UTXO数据。

内容的提问来源于stack exchange,提问作者George Abraham Ulloa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:18:02