Самое главное запомнить паттерн решения, практически в каждой задаче на анаграммы встречается следующая конструкция, разберём на примере:
// Принять массив строк, вернуть массив массивов анаграмм:
// ["тьма", "мать", "адрес", "среда", "поток"] → [["тьма", "мать"], ["адрес", "среда"]]
function anagram(arr) {
// создаем объект
let obj = {}
for (let name of arr) {
// сортируем массив, для того, чтобы проверить на анаграму
const sorted = name.split('').sort().join('');
if(obj[sorted]){
// добавляем в массив name
obj[sorted].push(name)
} else {
// ключ объекта для name с анаграмой
obj[sorted] = [name]
}
}
// возвращаем значения объекта (массивы) и фильтруем их по условию
return Object.values(ang).filter(el => el.length > 1)
}
Таким образом, мы вывели анаграммы из списка.