Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
El código de incremento automático de Javascript no funciona

Necesito generar 1000 imágenes cada una con números diferentes. Al hacer esto, se encuentra un script en línea que funciona bien, pero no funciona con 00 delante de los incrementos.

No puedo simplemente agregar 00 delante de cada número porque cuando llega a 10 está haciendo 0010 en lugar de 010 como yo quiero.

Eso significa que necesito cambiar un poco el código. Y probablemente sea MUY básico, pero simplemente no puedo entenderlo. Lamentablemente, no hay registro porque estoy ejecutando el script en Photoshop.

Aquí está el código con el que tengo problemas. Y debajo está el resultado:

 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'); };

¡Cualquier ayuda es muy apreciada! ¡No necesito que me alimenten con una cuchara! ¡Necesito aprender de mis errores!

Imagen del resultado del script, 10 no se genera correctamente. así como 1

Aquí está el código completo en el script (Olvidé agregar esto, editado después)

 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'); } };```
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Podrías intentarlo de esta manera:

 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'); };

Puede cambiar la plantilla de la almohadilla como desee. La salida de esto será:

1 -> 001

97 -> 097

999 -> 999

1234 -> 1234

about 4 years ago · Juan Pablo Isaza Relatório

0

Si solo está tratando de manipular una variable basada en el índice del bucle, lo siguiente sería suficiente.

 for (var i = 1; i <= 1000; i++) { // Result will be '00' | '0' | '' const result = i < 10 ? '00' : i < 100 ? '0' : ''; // The result is prepended to the current index // Aka (001, 010, 100) const contents = result + i; // Set the text item object contents to value of contents layer.textItem.contents = contents; // Saves the Image SavePNG(directory + imageName + '_' + contents + '.png'); }

Este

i < 10 ? '00' : i < 100 ? '0' : ''

Es un operador ternario por cierto, es esencialmente una declaración if abreviada.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede agregar el número a una cadena de ceros y luego dividir la cadena resultante en función de la longitud deseada:

 var template = "0000"; var num = 0; var targetNumber = 1000; for(let i = 0; i <= targetNumber; i++) { // add i to the template. Javascript will automatically to this type-coerceon since we're adding string + number let numStr = template + i; // strip leading zeroes to match the template length numStr = numStr.slice(numStr.length - template.length); console.log(numStr); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda