Este es mi escenario real
const cleanString=( string )=>{ let city = getAccentedCity(string); if( city.indexOf('%20')<0 ) return city; return city.replaceAll('%20', ' '); }
Ahora tengo que agregar otro caso cuando una ciudad contiene la cadena "%c3%9f"
y quiero reemplazarla con 's'
¿Cómo puedo agregarlo en mi función actual?
En primer lugar, debe tener en cuenta que la función String.replaceAll()
no es compatible con IE.
Si está de acuerdo con eso y supongo que lo está porque ya lo está usando, entonces simplemente crearía una matriz de pares que puede distribuir en la función replaceAll
.
Algo como esto:
const replaceMap = [ ['%20', ' '], ['%c3%9f', 's'], ]; const cleanString = (string) => { let city = getAccentedCity(string); replaceMap.forEach(pair => city = city.replaceAll(...pair)); return city; }
Simplemente agregue más pruebas si no desea volver a escribir el código
const cleanString= string => { let city = getAccentedCity(string); if (city.toLowerCase().indexOf('%c3%9f') >= 0 ) return city.replaceAll('%c3%9f', 's'); if (city.indexOf('%20') < 0) return city; return city.replaceAll('%20', ' '); }