Tengo una firma única que se genera para cada iteración, que eventualmente quiero guardar en un archivo .txt.
Mi firma es bastante simple, usa 0-9 y AZ, tiene 14 caracteres.
Quiero enviarlo a un Array solo si ese Array aún no lo contiene. Esto es lo que traté de hacer:
var uniqueSignature = [] do { var uniqueSignature = generateSignature() if (!signatureArray.includes(uniqueSignature)){ //checks if the Array does not contain the signature. signatureArray.push(uniqueSignature) //pushes the signature into the array. } } while (!signatureArray.includes(uniqueSignature)) //Keep doing so until the signature can be inserted (meaning is unique) function generateSignature(){ var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" var signatureLength = 14 var genSignature = "" for (var i = 0; i <= signatureLength; i++) { var randomChars = Math.floor(Math.random() * chars.length) genSignature += chars.substring(randomChars, randomChars +1) } currentSignature = genSignature } //[... eventually will write the array to a .txt files] Cuando intento ejecutarlo en Adobe Photoshop > Examinar > Cargar secuencia de comandos, aparece este error: 
También intenté reemplazar .includes por .indexOf , empujándolo solo si signatureArray.indexOf(uniqueSignature) == -1 , pero obtuve el mismo error.
¿Algunas ideas? Sé que jsx/Photoshop tiene algunas limitaciones cuando se trata de código (como que no me deja usar ${var} y demás). ¿Es esa la cosa aquí?
Si es así, ¿hay alguna otra forma de lograr este impulso después de la verificación?
Me las arreglé para evitar esto trabajando con una cadena en lugar de una matriz:
var currentSignature var z = 0 do { generateSignature() if (signatureString.indexOf(currentSignature) == -1){ signatureString = signatureString + currentSignature + '\n' z = 1 } } while (z = 0) En el futuro, puedo pasar un .join('\n') si necesito convertir la cadena (contenido del archivo) en una matriz nuevamente.