Удаляем дубликаты из массива, но сохраняем порядок!
Когда обрабатываешь списки из внешних источников (например, e-mail'ы, id-шники, URL'ы) — дубликаты нужно убрать, но порядок важен.
Простое
Используем
Теперь
Оборачиваем в функцию для переиспользования:
Можно применить к любым массивам:
🔥 Дубликаты примитивных значений удалены, исходный порядок сохранён — решение нативное и компактное.
📣 JS Ready | #практика
Когда обрабатываешь списки из внешних источников (например, e-mail'ы, id-шники, URL'ы) — дубликаты нужно убрать, но порядок важен.
Простое
new Set() не подойдёт — оно сохранит порядок, но не всегда удобно для сложной логики.Используем
Map — она сохраняет порядок добавления ключей:const items = ["a","b","a","c","b"];
const unique = [...new Map(items.map(i => [i,i])).keys()];
Теперь
unique будет ['a','b','c'] — в том же порядке, что в исходном массиве.Оборачиваем в функцию для переиспользования:
function removeDuplicates(arr){
return [...new Map(arr.map(i=>[i,i])).keys()];
}Можно применить к любым массивам:
const emails = ["a@mail.com","b@mail.com","a@mail.com"];
console.log(removeDuplicates(emails));
🔥 Дубликаты примитивных значений удалены, исходный порядок сохранён — решение нативное и компактное.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍6❤5🤝1
CLI-таймер с возможностью ставить на паузу и возобновлять помогает моделировать реальные задачи с перерывами: от рабочих спринтов до тестирования нагрузок.
В этом посте:
• Реализуем таймер с отсчётом в секундах.
• Добавим команды pause, resume и stop.
• Научим отображать прогресс в консоли.
• Сделаем логику универсальной для любых интервалов.
В итоге получим консольный инструмент, который можно использовать и как тренировочный проект, и как базу для реальных приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7👍7🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
SQLite3 Editor — минималистичный, но мощный плагин для VS Code, который позволяет прямо внутри редактора создавать, просматривать и редактировать SQL-базы.
Идеален для быстрой отладки, прототипов и локальной аналитики.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5🔥5🤝1
Всего 3–4 строки кода решают проблемы:
• Защита от повторных кликов.
• Кеширование тяжёлых вычислений.
• Фильтрация «шума» от событий.
• Контроль частоты API-вызовов.
В гайде собраны компактные реализации. Такой набор должен быть под рукой!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤6👍5
В этой статье:
• Использование фреймворка Admiral для создания интерфейса админки и маршрутизации;• Организация WebSocket-соединения с помощью библиотеки Centrifuge;• Логика управления диалогами и сообщениями внутри ChatContext;• Компоненты UI — всё с поддержкой файлов и обновлений;🔊 Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5🤝5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍7🔥5
•
push() — добавляет один или несколько элементов в конец существующего массива, изменяет исходный. Подходит, когда нужно динамически расширять массив без создания новой копии.•
concat() — объединяет массив с другими массивами или элементами и возвращает новый. Исходный массив остаётся неизменным. Идеально для иммутабельной логики и работы с функциональным кодом.Оба метода позволяют работать с коллекциями, но выбор зависит от того, хотите ли вы изменять исходный массив или создавать новый.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥7👍6