Два слова являются анаграммами, если они оба содержат одни и те же буквы. Например: 'abba' и 'baab', 'abba' и 'bbaa'. Слова 'abba' и 'abbba', 'abba' и 'abca' не являются анаграммами.
Напишите функцию, которая найдет все анаграммы слова из списка. Функция будет принимать одно слово (строку) и один массив со словами (строками). Функция должна вернуть массив всех анаграмм или пустой массив, если их нет.
Пример кода:
anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada']) - вернёт ['aabb', 'bbaa']
anagrams('racer', ['crazer', 'carer', 'racar', 'caers', 'racer']) - вернёт ['carer', 'racer']
anagrams('laser', ['lazing', 'lazy', 'lacer']) - вернёт []Решение задачи🔽
function isAnagram(word1, word2) {
return word1.split('').sort().join('') === word2.split('').sort().join('');
}
function anagrams(word, words) {
return words.filter(w => isAnagram(word, w));
}
// Test cases
console.log(anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada'])); // Output: ['aabb', 'bbaa']
console.log(anagrams('racer', ['crazer', 'carer', 'racar', 'caers', 'racer'])); // Output: ['carer', 'racer']
console.log(anagrams('laser', ['lazing', 'lazy', 'lacer'])); // Output: []
Please open Telegram to view this post
VIEW IN TELEGRAM
Как выполняются функции в Javanoscript? Каков порядок их выполнения? Что такое контекст выполнения? Отвечаем на эти вопросы с иллюстрациями.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
CSS-анимации проще в использовании и работают быстрее, чем на JavaScript. В этом материале собрали 13 полезных библиотек, которые помогут вам без заморочек создавать крутые анимационные эффекты.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Современный веб-дизайн требует глубокого понимания возможностей CSS. Мы расскажем о 25 передовых CSS-техниках, которые помогут вам создавать стильные, функциональные и производительные веб-сайты, соответствующие последним трендам.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В CSS появилось удобное центрирование объектов одной строкой кода через align-content
В 2024 году CSS получила долгожданное обновление — свойство align-content, которое устраняет сложные обходные решения для вертикального центрирования элементов. Теперь веб-разработчики могут центровать контент всего одной строкой кода.
Читать...
В 2024 году CSS получила долгожданное обновление — свойство align-content, которое устраняет сложные обходные решения для вертикального центрирования элементов. Теперь веб-разработчики могут центровать контент всего одной строкой кода.
Читать...
Добавь в свою коллекцию 4 полезных пользовательских хука для React. Они помогут сделать код чище, масштабируемее и упростят работу над проектами.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Разберемся, как наилучшим образом настроить авторизацию и другие предварительные шаги, которые повторяются сразу в нескольких тестах - и при этом сохранить читаемость и ясность кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию с именем encode() для замены всех строчных гласных в заданной строке числами в соответствии со следующим шаблоном:
a => 1
e => 2
i => 3
o => 4
u => 5
Пример кода:
encode("hello") => "h2ll4"Создайте функцию с именем decode(), чтобы преобразовать числа обратно в гласные в соответствии с тем же шаблоном, который показан выше.
decode("h3 th2r2") => "hi there"Решение задачи
function encode(str) {
// Создаем объект для соответствия гласных и чисел
const vowelsToNum = { 'a': '1', 'e': '2', 'i': '3', 'o': '4', 'u': '5' };
// Заменяем каждую гласную в строке соответствующим числом
return str.replace(/[aeiou]/g, match => vowelsToNum[match]);
}
function decode(str) {
// Создаем объект для соответствия чисел гласным
const numToVowels = { '1': 'a', '2': 'e', '3': 'i', '4': 'o', '5': 'u' };
// Заменяем каждую цифру в строке соответствующей гласной
return str.replace(/[1-5]/g, match => numToVowels[match]);
}
// Тестирование функций
console.log(encode("hello")); // должно вывести "h2ll4"
console.log(decode("h3 th2r2")); // должно вывести "hi there"
Please open Telegram to view this post
VIEW IN TELEGRAM
• Изнанка электронных календарей: как работает спецификация iCalendar и как создавать .ics-файлы
• Книга: «Рецепты PHP. Для профессиональных разработчиков»
• TypeScript клиент для Wildberries API
• Настройка алиасов путей с помощью Node.js Subpath Imports в TypeScript проекте
• В помощь разработчику: 6 полезных библиотек визуализации данных
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответы на пять вопросов, ставящих в тупик каждого второго фронтендера.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Рассмотрим другие (массивоподобные) структуры – стеки, очереди и связные списки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Анимированный переключатель с плавающей рамкой. Сделан на чистом CSS.
Открыть код
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы не поверите, но теперь в CSS можно определять свойства, выполнять математические вычисления и даже напрямую получать размер окна! В этой статье мы расскажем вам, как это делается.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Для ускорения веб-приложений есть множество инструментов и паттернов. Один из них — key-value система Redis. Рассказываем, как ее установить и настроить для повышения производительности и надежности.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Начинающие веб-разработчики часто сталкиваются с трудностями при выборе интегрированной среды разработки (IDE). Рассказываем, как не прогадать и не усложнить себе жизнь.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает строку из одного или нескольких слов и возвращает ту же строку, но со всеми пятью или более буквенными словами в обратном порядке (точно так же, как название этого ката).
Передаваемые строки будут состоять только из букв и пробелов. Пробелы будут включены только в том случае, если присутствует более одного слова.
Пример кода:
spinWords( "Hey fellow warriors" ) => returns "Hey wollef sroirraw"
spinWords( "This is a test") => returns "This is a test"
spinWords( "This is another test" )=> returns "This is rehtona test"
Решение задачи
function spinWords(sentence) {
return sentence.split(' ').map(word => {
return word.length >= 5 ? word.split('').reverse().join('') : word;
}).join(' ');
}
// Примеры использования
console.log(spinWords("Hey fellow warriors")); // "Hey wollef sroirraw"
console.log(spinWords("This is a test")); // "This is a test"
console.log(spinWords("This is another test")); // "This is rehtona test"
Please open Telegram to view this post
VIEW IN TELEGRAM
Производительность - важнейший аспект веб-приложения. Однако одностраничные приложения React (SPA) известны плохой производительностью. Рассмотрим 7 методов, которые помогут это исправить и обеспечить беспроблемный пользовательский опыт.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Редкий владелец собственного бизнеса не имеет собственного сайта, и неважно – крупный это или мелкий предприниматель. Однако не все знают, как такие проекты создаются и какие технологии используют веб-разработчики.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Несколько практических советов для улучшения качества кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Анимированный индикатор переключения страниц. Сделан на SCSS и TypeScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM