He probado los códigos a continuación. Sin embargo, no sé cómo eliminar los caracteres duplicados. Por favor, ayúdenme en el proceso de pensamiento de cómo eliminar los caracteres duplicados. ¡Gracias! (Principiante de JavaScript aquí)
function get_common_characters(str1, str2) { let common_chars = [] // YOUR CODE GOES HERE new_str1 = str1.replace(" ", "").toLowerCase() // console.log(new_str1) new_str2 = str2.replace(" ", "").toLowerCase() for (let i=0; i < new_str1.length; i++){ for (let j=0; j < new_str2.length; j++){ if (new_str1[i] == new_str2[i]){ common_chars.push(new_str1[i]) } } } return common_chars }La siguiente imagen es el resultado de los casos de prueba en la consola.
Estos son los casos de prueba para los códigos anteriores.
Si bien podría deduplicar common_chars después
return [...new Set(common_chars)]Creo que un enfoque más agradable (y menos complejo desde el punto de vista computacional) sería hacer conjuntos de ambas cadenas con anticipación, luego iterar a través de uno de ellos mientras verifica si el otro contiene el carácter en cuestión.
function get_common_characters(str1, str2) { const set1 = new Set(str1); return [...new Set(str2)] .filter(char => set1.has(char)); }function get_common_characters(str1, str2) { const set1 = new Set(str1.split('')) const set2 = new Set(str2.split('')) const result = [] for(let char of set1.values()){ if(set2.has(char)) result.push(char) } return result }