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

如何在pgn[46]处停止数组迭代,防止按钮点击后循环重置

解决办法
  1. 移除循环重置逻辑:删掉导致索引回到0的代码,避免棋子重复移动。
  2. 添加停止判断:在按钮点击事件中加入索引检查,仅当索引小于46时执行移动操作,到达46后不再响应点击。

修改后的完整代码:

$('#move1Btn').on('click', function () {
  // 仅在索引未达到46时执行移动
  if (intpgnIndex < 46) {
    board.move(pgn[intpgnIndex]);
    intpgnIndex++;
  }
})

var pgn = new Array()
pgn[0] = ""
pgn[1] = "e2-e4"
pgn[2] = "e7-e5"
pgn[3] = "f2-f4"
pgn[4] = "e5-f4"
pgn[5] = "f1-c4"
pgn[6] = "d8-h4"
pgn[7] = "e1-f1"
pgn[8] = "b7-b5"
pgn[9] = "c4-b5"
pgn[10] = "g8-f6"
pgn[11] = "g1-f3"
pgn[12] = "h4-h6"
pgn[13] = "d2-d3"
pgn[14] = "f6-h5"
pgn[15] = "f3-h4"
pgn[16] = "h6-g5"
pgn[17] = "h4-f5"
pgn[18] = "c7-c6"
pgn[19] = "g2-g4"
pgn[20] = "h5-f6"
pgn[21] = "h1-g1"
pgn[22] = "c6-b5"
pgn[23] = "h2-h4"
pgn[24] = "g5-g6"
pgn[25] = "h4-h5"
pgn[26] = "g6-g5"
pgn[27] = "d1-f3"
pgn[28] = "f6-g8"
pgn[29] = "c1-f4"
pgn[30] = "g5-f6"
pgn[31] = "b1-c3"
pgn[32] = "f8-c5"
pgn[33] = "c3-d5"
pgn[34] = "f6-b2"
pgn[35] = "f4-d6"
pgn[36] = "c5-g1"
pgn[37] = "e4-e5"
pgn[38] = "b2-a1"
pgn[39] = "f1-e2"
pgn[40] = "b8-a6"
pgn[41] = "f5-g7"
pgn[42] = "e8-d8"
pgn[43] = "f3-f6"
pgn[44] = "g8-f6"
pgn[45] = "d6-e7"
pgn[46] = ""
pgn[47] = ""
pgn[48] = ""
pgn[49] = ""

var intpgnIndex = 0;

关键修改说明

  • 按钮点击逻辑优化:新增intpgnIndex < 46的判断条件,确保索引到达46后,点击按钮不会执行任何移动操作,自然停止迭代。
  • 删除循环重置代码:原writeThing函数中重置索引为0的逻辑是重复移动的根源,现在直接将索引递增逻辑整合到点击事件的判断内,无需保留该函数,彻底避免循环问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:15:49