JavaScript脚本仅最后一步失效:文件30未按预期命名为C的问题
问题分析与修复方案
问题出在取模运算后的条件判断逻辑:
当counter为30时,30 % (3*10) = 0,此时index = 0,会匹配第一个条件index <= Y(0<=10),所以被命名为A,而正确的应该归为C组。
修复方式一:调整取模计算逻辑
将index = (counter)%(X*Y);改为index = (counter - 1) % (X*Y);,让所有counter的取值偏移1位,避免出现0的情况:
- counter=1~10 → index=0~9 → 匹配A组条件
- counter=11~20 → index=10~19 → 匹配B组条件
- counter=21~30 → index=20~29 → 匹配C组条件
- counter=31 → index=0 → 回到A组
修改后的代码:
var X = 3; // 分组数 var Y = 10; // 每组文件数 if (counter) { index = (counter - 1) % (X*Y); if (index < Y) newName += '_A_'; else if (index < Y*2) newName += '_B_'; else if (index < Y*3) newName += '_C_'; }
修复方式二:调整条件判断逻辑
保留原取模计算,单独处理index=0的情况,将其归为C组:
var X = 3; // 分组数 var Y = 10; // 每组文件数 if (counter) { index = counter % (X*Y); if (index === 0) newName += '_C_'; else if (index <= Y) newName += '_A_'; else if (index <= Y*2) newName += '_B_'; else if (index <= Y*3) newName += '_C_'; }
两种方式都能解决30号文件被错误命名为A的问题,第一种逻辑更简洁统一。
内容的提问来源于stack exchange,提问作者Easygreen
相关产品推荐
相关产品推荐

