Me gustaría generar una serie alfanumérica a la moda - AA0AAA00
Los siguientes serían AA0AAA01, AA0AAA02...AA0AAA99, AA0AAB00, AA0AAB01....AA0AAZ99, AA0ABA00 hasta ZZ9ZZZ99
he probado con
var start = "AA0AAA00" var current = start while (start != "ZZ9ZZZ99") { current = current + 1 console.log(current) }Aquí hay una solución de generador recursivo. Primero traduce el patrón a rangos de "dígitos" para cada posición, y luego la recursión itera cada carácter en el rango de la primera posición y deja el resto a la recursión.
Para la ejecución del ejemplo, simplemente tomé el patrón "A0" para limitar el tamaño de la salida aquí:
function* gen(start) { let ranges = Array.from(start, ch => ch == "0" ? "0123456789" : "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ); function* recur(range, ...rest) { if (!rest.length) return yield* range; for (let ch of range) { for (let out of recur(...rest)) { yield ch + out; } } } yield* recur(...ranges); } console.log([...gen("A0")]);