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

如何让三角套利JS脚本在acquiredCoin为0时跳过当前循环?

修改三角套利JavaScript脚本的循环逻辑方案

核心解决方法

在遍历交易的for循环中,当检测到acquiredCoinT1或acquiredCoinT2等于0时,使用JavaScript的continue语句跳过当前循环迭代,直接进入下一次循环,避免脚本终止执行。

代码修改示例

原始问题代码(示例)

假设你的脚本原本是这样的(存在终止逻辑):

// 遍历交易列表的循环
for (let i = 0; i < tradePairs.length; i++) {
  const pair = tradePairs[i];
  // 计算获取的代币数量
  const acquiredCoinT1 = getAcquiredAmount(pair, 'T1');
  const acquiredCoinT2 = getAcquiredAmount(pair, 'T2');

  // 原始逻辑:等于0时终止脚本/循环
  if (acquiredCoinT1 === 0 || acquiredCoinT2 === 0) {
    break; // 或return,直接停止循环/脚本
  }

  // 后续套利机会检测逻辑
  evaluateArbitrage(acquiredCoinT1, acquiredCoinT2);
}

修改后的代码

将终止语句替换为continue,实现跳过当前循环:

// 遍历交易列表的循环
for (let i = 0; i < tradePairs.length; i++) {
  const pair = tradePairs[i];
  const acquiredCoinT1 = getAcquiredAmount(pair, 'T1');
  const acquiredCoinT2 = getAcquiredAmount(pair, 'T2');

  // 修改后:检测到0时跳过当前循环,继续下一次迭代
  if (acquiredCoinT1 === 0 || acquiredCoinT2 === 0) {
    continue; // 关键:直接进入下一次循环,不执行后续逻辑
  }

  // 仅当代币数量正常时,执行套利检测
  evaluateArbitrage(acquiredCoinT1, acquiredCoinT2);
}

其他循环结构适配

如果使用for...of遍历,同样适用continue:

for (const pair of tradePairs) {
  const acquiredCoinT1 = getAcquiredAmount(pair, 'T1');
  const acquiredCoinT2 = getAcquiredAmount(pair, 'T2');

  if (acquiredCoinT1 === 0 || acquiredCoinT2 === 0) {
    continue;
  }

  evaluateArbitrage(acquiredCoinT1, acquiredCoinT2);
}

关键说明

  • continue只会跳过当前循环的剩余代码,不会终止整个循环或脚本
  • 如果存在嵌套循环,continue仅作用于当前所在的循环层级,需根据实际逻辑调整

内容的提问来源于stack exchange,提问作者Viktor Cortez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:48:15