Escriba un programa de JavaScript para encontrar los caracteres únicos en una cadena. La función uniqueCharacters debe tomar una cadena como argumento y devolverla después de eliminar todos los caracteres que aparecen más de una vez en la cadena. Esta es la función principal.
La función modificarCadena es la subfunción. Esto se invoca desde dentro de la función uniqueCharacters con la misma cadena que el argumento. Esta función eliminará todos los caracteres de espacio en blanco y convertirá la cadena completa a minúsculas y devolverá lo mismo a la persona que llama.
Nota: puede verificar la exactitud de su función invocándola desde console.log
console.log(uniqueCharacters("Welcome to the Javascript course"));
¿Dónde me estoy equivocando? Mi código (a continuación) no funciona correctamente. La salida debería ser: welcomthjavsripu .
function modifyString(str) { return str.charAt(0).toLowerCase() + str.slice(1); } function uniqueCharacters(str) { modifyString(str); var str1=str; var uniql= ""; for(var x=0;x<str1.length;x++) { if(uniql.indexOf(str1.charAt(x))==-1) { if(str.charAt(x) === ' ') { continue; } uniql += str1[x]; } } return uniql; } console.log(uniqueCharacters("Welcome to the Javascript course"));Veo dos problemas con tu código:
modifyString(str) con str = modifyString(str)modifyString debería ser simplemente return str.toLowerCase();Usaría el enfoque de contar caracteres con Map y luego filtrarlos.
function uniqueCharacters(str) { const uniqChar = new Map(); const result = [] for(const character of str) { if(uniqChar.has(character)) { uniqChar.set(character, uniqChar.get(uniqChar) + 1) } else { uniqChar.set(character,1) } } uniqChar.forEach((val,key) => { if(val === 1) result.push(key) }) return result; } console.log(uniqueCharacters("AbaacddeR"));