Шаблонизаторы используются во фронтенд-разработке для создания компонентов, помогая разработчикам писать более чистый и удобный для поддержки код. Они избавляют от необходимости повторять один и тот же код. В этой статье мы рассмотрим десять популярных шаблонизаторов и узнаем, как с их помощью создавать простые шаблоны.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Необходимо написать алгоритм для проверки того, может ли заданная строка
s быть составлена из двух других строк, part1 и part2.Ограничение состоит в том, что символы в частях
part1 и part2 должны быть в том же порядке, что и в s.Пример кода:
isMerge('xcyc', 'xc', 'yc') => true
isMerge('codewars', 'code', 'wars') => true
isMerge('More progress', 'More ess', 'pro') => false
isMerge('Making progress', 'Mak pross', 'inggre') => trueРешение задачи
function isMerge(s, part1, part2) {
if (s.length !== part1.length + part2.length) return false;
const dp = Array(part1.length + 1).fill(true).map(() => Array(part2.length + 1).fill(true));
for (let i = 0; i <= part1.length; i++) {
for (let j = 0; j <= part2.length; j++) {
if (i > 0) dp[i][j] = dp[i][j] && (s[i + j - 1] === part1[i - 1] && dp[i - 1][j]);
if (j > 0) dp[i][j] = dp[i][j] && (s[i + j - 1] === part2[j - 1] && dp[i][j - 1]);
}
}
return dp[part1.length][part2.length];
}
// Примеры использования
console.log(isMerge('xcyc', 'xc', 'yc')); // => true
console.log(isMerge('codewars', 'code', 'wars')); // => true
console.log(isMerge('More progress', 'More ess', 'pro')); // => false
console.log(isMerge('Making progress', 'Mak pross', 'inggre')); // => true
Please open Telegram to view this post
VIEW IN TELEGRAM
Ознакомьтесь с разработкой веб-приложения MovieVerse. Эта удобная платформа позволит пользователю без труда изучать обширную коллекцию постеров к фильмам, добавляя выбранные фильмы в список просмотра.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
• Книга: «Hypermedia-разработка. htmx и Hyperview»
• React Query: стейт-менеджер для любителей кэша
• Как мы OpenAPI в приложениях используем (Spring Boot, Typenoscript)
• Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк
• JavaScript: структуры данных и алгоритмы. Часть 2
Please open Telegram to view this post
VIEW IN TELEGRAM
С помощью этих библиотек и пакетов вы справитесь с любой задачей - от управления состоянием и решения проблемы аутентификации до получения и проверки данных. Они позволят упростить разработку, расширить возможности приложений Next.js.и обеспечить исключительный пользовательский опыт.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье мы раскроем всю мощь и многогранность итераторов JavaScript. Если вам случалось работать с коллекциями данных и задаваться вопросом, есть ли более эффективный и элегантный способ работы с ними, то вы попали по адресу.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Ваша цель в этом ката — реализовать функцию разности, которая вычитает один список из другого и возвращает результат.
Нужно удалить все значения из списка a, которые присутствуют в списке b, сохраняя их порядок.
Пример кода:
array_diff([1,2],[1]) == [2]
Если значение присутствует в b, все его вхождения должны быть удалены из другого:array_diff([1,2,2,2,3],[2]) == [1,3]Решение задачи🔽
function array_diff(a, b) {
return a.filter(item => !b.includes(item));
}
// Примеры использования:
console.log(array_diff([1, 2], [1])); // [2]
console.log(array_diff([1, 2, 2, 2, 3], [2])); // [1, 3]
console.log(array_diff([1, 2, 2], [1])); // [2, 2]
console.log(array_diff([1, 2, 2], [])); // [1, 2, 2]
console.log(array_diff([], [1, 2])); // []
Please open Telegram to view this post
VIEW IN TELEGRAM
Почувствуйте магию веб-разработки: узнайте, что представляют собой ее компоненты и инструменты, чтобы разработать свою первую веб-страницу. Пусть веб-разработка станет вашим холстом для цифрового творчества.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотите больше времени на новые интересные задачи, решение сложных проблем или просто уходить с работы вовремя? Эти 15 сайтов помогут вам существенно ускорить процесс разработки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Принципы и методы, такие как SOLID, KISS, DRY и DDD, помогут разработать более чистую архитектуру фронтенда. Следование правилам создания компонентов с учетом бизнес-логики обеспечит предсказуемую поддержку кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
• CSS-классы вредны
• Как узнать количество перерисовок? React Custom Hook: useRenderCount
• Как добавить кэширование в ваше React приложение
• Как компилировать json или история оптимизации python сервиса
• Web components как альтернатива iframe на примере Angular-компонентов
Please open Telegram to view this post
VIEW IN TELEGRAM
Применение правильных паттернов проектирования – это залог создания надежных, эффективных и масштабируемых React-приложений. Вот шаблоны, которые необходимо освоить в первую очередь.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрали лучшие веб-приложения для работы с изображениями, логотипами, анимацией, шрифтами, README-файлами и многим другим.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Крутая кнопка с RGB подсветкой и эффектом при наведении. Сделана на чистом CSS.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Рассказываем, почему Vue не только не уступает самому популярному инструменту для разработки фронтенда, но и во многом его превосходит.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом задании наша цель — написать функцию, которая проверяет игру крестики-нолики на выирыш. Предположим, что поле для игры представлено в виде массива 3x3, где значение равно 0, если ячейка пуста, 1, если это «X», и 2, если это «O»,
Пример кода:
isSolved([[0,0,1],
[0,1,2],
[2,1,0]]) => -1
Мы хотим, чтобы наша функция возвращала:
-1, если есть пустые места,
1, если "X" выиграли,
2, если "О" выиграли,
0, если это ничья.
Решение задачи
function isSolved(board) {
const checkLine = (a, b, c) => {
if (a === b && b === c) {
return a;
}
return 0;
};
// Проверка всех строк
for (let i = 0; i < 3; i++) {
const result = checkLine(board[i][0], board[i][1], board[i][2]);
if (result !== 0) return result;
}
// Проверка всех столбцов
for (let i = 0; i < 3; i++) {
const result = checkLine(board[0][i], board[1][i], board[2][i]);
if (result !== 0) return result;
}
// Проверка диагоналей
let result = checkLine(board[0][0], board[1][1], board[2][2]);
if (result !== 0) return result;
result = checkLine(board[0][2], board[1][1], board[2][0]);
if (result !== 0) return result;
// Проверка на наличие пустых клеток
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (board[i][j] === 0) return -1;
}
}
// Если нет выигрыша и нет пустых клеток, то это ничья
return 0;
}
// Примеры использования:
console.log(isSolved([[0,0,1], [0,1,2], [2,1,0]])); // -1
console.log(isSolved([[1,1,1], [0,1,2], [2,1,0]])); // 1
console.log(isSolved([[2,2,2], [0,1,2], [2,1,0]])); // 2
console.log(isSolved([[1,2,1], [2,1,2], [2,1,1]])); // 0
Please open Telegram to view this post
VIEW IN TELEGRAM
• JavaScript в гугл-таблицах: скрипты для расчета мультивалютной корзины
• Реализация доступности веб-приложений с помощью Flutter
• Мой ТОП-5 лучших CSS-in-JS решений
• Лучшие открытые курсы для изучения PHP с нуля
• Как создать бесшовную текстуру на angular без инструкций и примеров
Please open Telegram to view this post
VIEW IN TELEGRAM
💥 17 убийственных сайтов для веб-разработчиков
Хранение под рукой полезных сайтов – хороший способ повышения производительности труда для дизайнера или веб-разработчика. Разберем некоторые из лучших инструментов, способных уменьшить объем вашей повседневной рутины.
Читать...
Хранение под рукой полезных сайтов – хороший способ повышения производительности труда для дизайнера или веб-разработчика. Разберем некоторые из лучших инструментов, способных уменьшить объем вашей повседневной рутины.
Читать...
Руководство по созданию компонента автодополнения с учетом всех требований доступности.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM