Estoy tratando de encontrar una palabra única en mi cadena de entrada con JS y he escrito un código. Sin embargo, mi código no funciona y no sé por qué. ¿Alguien podría ayudarme por favor?
function findUniqueWord(index){ var show = [] var result = [...index] for (let i = 0; i < result.length; i++) { for (let j = i + 1; j < result.length; j++) { if(result[i] === result[j]){ } else{ return show.push(result[i]) } } } return show } console.log(findUniqueWord('A2A'));Si tiene la intención de encontrar la primera letra única en una cadena, puede usar split para crear una matriz de cadenas, luego usar reduce para sumar duplicados y la última parte usar Object.entries con indexOf para buscar la primera letra única. En este ejemplo, agregaré un caso en el que no existe una letra única.
function findUniqueWord(index) { let array = index.split(''); let map = array.reduce(function(prev, cur) { prev[cur] = (prev[cur] || 0) + 1; return prev; }, {}); let finalIndex = null; for (const [key, value] of Object.entries(map)) { if(value === 1){ let tempIndex = array.indexOf(key); finalIndex = (finalIndex !== null && finalIndex < tempIndex) ? finalIndex : tempIndex; } } return (finalIndex === null) ? 'No unique letter' : array[finalIndex]; } console.log(findUniqueWord('Mystery')); console.log(findUniqueWord('2A2')); console.log(findUniqueWord('2AA')); console.log(findUniqueWord('22AA')); Este método distingue entre mayúsculas y minúsculas si no lo necesita, simplemente use toUpperCase() para escribir una cadena antes de llamar al método de split .
Referencia: