Самое главное запомнить паттерн решения, практически в каждой задаче на анаграммы встречается следующая конструкция, разберём на примере:
// Принять массив строк, вернуть массив массивов анаграмм:
// ["тьма", "мать", "адрес", "среда", "поток"] → [["тьма", "мать"], ["адрес", "среда"]]
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);
}Таким образом, мы вывели анаграммы из списка.