Вот еще одно быстрое упражнение для обеденного перерыва. Легко пишется, легко понимается и не имеет никакого практического применения в повседневной жизни. Веселье!

Анаграмма, согласно Dictionary.com, – это слово, фраза или имя, образованное путем перестановки букв другого, например кино, образованного от iceman.
Наше решение примет две строки для сравнения и вернет true, если строки на самом деле являются анаграммами, и false, если нет.
Чтобы выполнить эту задачу должным образом, нам нужны пять инструментов — встроенные в JavaScript функции toLowerCase(), split(), sort(), join() и trim().

Допустим, наш ввод — это две строки — «НОЧЬ» и «Вещь». Используя вместе пять встроенных функций, описанных выше, они эффективно сделают следующее:
- Сделайте все вводимые буквы строчными — «НОЧЬ» станет «ночью». Теперь, независимо от регистра, наша программа не выдаст ошибку, если буквы представляют собой настоящую анаграмму.
- Разделить ввод по буквам — «ночь» становится «n», «i», «g», «h», «t».
- Отсортируйте их в алфавитном порядке: ‘n’ ‘i’ ‘g’ ‘h’ ‘t’ становится ‘g’ ‘h’ ‘i’ ‘n’ ‘t’.
- Соедините их снова вместе — ‘g’ ‘h’ ‘i’ ’n’ ‘t’ становится ‘ghint’.
- Обрежьте все пробелы. Поскольку мы проверяем, не составляют ли буквы анаграмму, мы должны удалить все пробелы, которые могут испортить наше решение.
Теперь, если мы пропустим обе наши входные строки через нашу программу проверки анаграмм, мы получим действительный ответ, независимо от пунктуации, регистра или пробелов.
СЛОВО!
Полный код с комментариями смотрите ниже.
Спасибо за чтение, не стесняйтесь комментировать рефакторинг решений!