Estoy tratando de obtener todos los anagramas de una serie de palabras:
arr = ['cab','bac','tru']Se supone que la salida esperada es:
{abc: ['cab','bac']}Intenté implementar el siguiente código:
var words = ['cab', 'bac', 'mihir'] let result = {} words.forEach(word => { var a = word.split("").sort().join(""); result[word] = a }) console.log(result)¿Cómo itero sobre los valores para poder acceder a las claves si tienen los mismos valores?
Puede usar las palabras ordenadas como claves en un objeto y recopilar cada palabra que coincida con la clave en una matriz:
var words = ['cab', 'bac', 'mihir'] let result = {} for (const word of words) { const sorted = word.split("").sort().join(""); if (sorted in result) { // If there is already an entry in the result, append this word result[sorted].push(word); } else { // Otherwise, create one result[sorted] = [word]; } } console.log(result);