Me gustaría encontrar una manera de reemplazar el token 'c1' con 'c2', reemplazar 'c2' con 'c3', etc. usando menos líneas de código.
Actualmente, estoy revisando cada elemento con forEach, así:
carsLeft.forEach(carLeft => moveCarLeft(carLeft))
Y luego, para mover el elemento un espacio hacia la izquierda, entro en una declaración de cambio para reasignarle una clase:
switch(true) { case carLeft.classList.contains('c1'): carLeft.classList.replace('c1', 'c2') break case carLeft.classList.contains('c2'): carLeft.classList.replace('c2', 'c3') break case carLeft.classList.contains('c3'): carLeft.classList.replace('c3', 'c4') break }
Me preguntaba si hay una forma de usar expresiones regulares para simplificar la declaración de cambio en algo como esto:
carLeft.classList.replace(`c\d`, `c\d+`)
...o tal vez de otra manera además de usar expresiones regulares. Gracias por tomarse el tiempo de leer esto. Cualquier ayuda sería muy apreciada.
Podrías usar un bucle for
:
for (let i = 1; i <= 3; i++) { if (carLeft.classList.contains("c"+i)) { carLeft.classList.replace("c"+i, "c"+(i+1)); break; } }