Estoy tomando un curso de JS y mi tarea era hacer un pequeño programa que camelCase valores de la entrada 'textarea'.
Entrada ficticia:
underscore_case first_name Some_Variable calculate_AGE delayed_departureMi código se parece a esto:
document.body.append(document.createElement('textarea')); document.body.append(document.createElement('button')); document.querySelector('button').addEventListener('click', function () { const text = document.querySelector('textarea').value; //Storing data in a variable const letsLower = text.toLowerCase(); //Lowecasing const arrayedValues = letsLower.split('\n'); let camelCased = []; //I created an emtpy array so i could changed values to it for (let v of arrayedValues) { v = v.trimStart(); const up = v.indexOf('_') + 1; //Here i am detecting the character that should be changed v = v.replace(v[up], v[up].toUpperCase()); //replacing lower to upper character v = v.replace('_', ''); **deleting the underscore** camelCased.push(v); //pushing the changed element to the array } let emoji = ''; for (let z of camelCased) { emoji += '✔️'; console.log(`${z} ${emoji}`); } });Ignore el emoji de verificación, esto también fue parte del ejercicio.
Así que funciona hasta que hay una cadena que tiene el carácter que quiero reemplazar anteriormente en la cadena, luego simplemente reemplaza la primera instancia (por ejemplo, a_a será Aa en lugar de aA). Sé que el método .replace() reemplaza solo la primera aparición y esta es la explicación del problema.
Mi pregunta es ¿cómo podría volver a escribir el programa usando el método de reemplazo? Ya sé cómo solucionar este problema de otra manera, como se explicó en el curso, pero tengo mucha curiosidad si puede funcionar de esta manera.