javascript - Javascript自动增量代码不起作用
问题描述
我需要生成 1000 张图像,每个图像都有不同的数字。这样做是在网上找到了一个可以正常工作的脚本,但它不适用于增量前面的 00 。
我不能只在每个数字前添加 00,因为当它达到 10 时,它会执行 0010 而不是我想要的 010。
这意味着我需要稍微更改代码。它可能真的很基本,但我就是想不通。遗憾的是没有日志,因为我在 Photoshop 中运行脚本。
这是我遇到问题的代码。下面是结果:
for (var i=1; i <= numImages; i++) {
if(layer.textItem.contents < 10) {
layer.textItem.contents = "00" + i.toString();
} else if(layer.textItem.contents >= 10) {
layer.textItem.contents = "0" + i.toString();
} else {
layer.textItem.contents = i.toString();
}
SavePNG(directory + imageName + '_'+ i +'.png');
};
非常感谢任何帮助!我不需要用勺子喂!我需要从错误中吸取教训!
这是脚本中的完整代码(忘记添加,后来编辑)
var imageName = 'Oppmoteskjema';
var numImages = 15;
function SavePNG(saveFile){
var pngOpts = new ExportOptionsSaveForWeb;
pngOpts.format = SaveDocumentType.PNG
pngOpts.PNG8 = false;
pngOpts.transparency = false;
pngOpts.interlaced = false;
pngOpts.quality = 10;
activeDocument.exportDocument(new File(saveFile),ExportType.SAVEFORWEB,pngOpts);
}
var layer = activeDocument.layers[0];
if (layer.kind == 'LayerKind.TEXT') {
for (var i=1; i <= numImages; i++) {
layer.textItem.contents = i.toString();
var str = "" + i;
var pad = "000";
var ans = pad.substring(0, pad.length - str.length) + str;
SavePNG(directory + imageName + '_'+ ans +'.png');
}
};```
解决方案
你可以这样尝试:
for (var i=1; i <= numImages; i++) {
var str = "" + i;
var pad = "000";
var ans = pad.substring(0, pad.length - str.length) + str;
layer.textItem.contents = ans;
SavePNG(directory + imageName + '_'+ ans +'.png');
};
您可以根据需要更改焊盘模板。其输出将是:
1 -> 001
97 -> 097
999 -> 999
1234 -> 1234
推荐阅读
- php - 如何将 Active WooCommerce Membership Plan Slug 添加到 Body Class?
- sass - 如何使用 Hugo 设置 SCSS
- c++ - 如何用 strcpy_s 替换 strcpy?
- ruby-on-rails - 如何将数据从 ajax() 传递到控制器 Rails
- dart - 在课堂内从 Firebase 注销
- ruby - Extract hex strings from binary file in Ruby
- swift - 如何从选定的表格视图单元格中检索文本?
- flutter - Flutter 上的地图
- javascript - 提示js typeof的问题
- oracle - 为什么这个过程不返回值?