В интерфейсах с формами важно понять — пользователь что‑то изменил или всё осталось как было? Это влияет на логику сохранения, показ предупреждений и экономию запросов.
В этой задаче:
• Сравним объекты по значениям, а не по ссылкам.
• Обработаем разный порядок ключей.
• Научим функцию понимать вложенность.
• Сделаем компактную и универсальную. реализацию.
Конечный результат — лёгкая функция, которую можно сразу использовать в любых интерфейсах с изменяемыми данными.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10❤6🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Даже скачивать ничего не нужно, ведь всё уже встроено в редактор. Как и что можно настроить показано на видео выше от Miguel Ángel Durán
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤7🔥3😁2
Озвучка текста на странице!
Нативный JavaScript умеет читать вслух любой текст на странице, это часть
Начнём с базового: озвучим строку с помощью
Добавим функцию, чтобы переиспользовать и задавать любой текст:
Теперь можно вызывать так:
Далее прикрутим к горячей клавише. Пусть Ctrl + R озвучит рандомный совет:
🔥 Голосовой ассистент в одну строчку готов. Можно подключать к уведомлениям, ботам, виджетам — или просто добавить в пасхалку на сайте.
📣 JS Ready | #практика
Нативный JavaScript умеет читать вслух любой текст на странице, это часть
Web Speech API.Начнём с базового: озвучим строку с помощью
SpeechSynthesisUtterance.const msg = new SpeechSynthesisUtterance("Привет, мир");
speechSynthesis.speak(msg);Добавим функцию, чтобы переиспользовать и задавать любой текст:
function speak(text) {
const msg = new SpeechSynthesisUtterance(text);
speechSynthesis.speak(msg);
}Теперь можно вызывать так:
speak("Текущая температура: 22 градуса и ясно");Далее прикрутим к горячей клавише. Пусть Ctrl + R озвучит рандомный совет:
document.addEventListener("keydown", (e) => {
if (e.ctrlKey && e.key === "r") {
speak("Не забывай пить воду и делать перерывы");
}
});🔥 Голосовой ассистент в одну строчку готов. Можно подключать к уведомлениям, ботам, виджетам — или просто добавить в пасхалку на сайте.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍11❤8
Сегодня создадим систему событий, которая позволяет модулям общаться друг с другом напрямую. Такой подход упрощает архитектуру и делает код независимым и масштабируемым.
В этом посте:
• Создаём класс-рассыльщик событий.
• Подписываемся и отписываемся от событий.
• Реагируем на события в разных модулях.
• Изолируем и расширяем логику через события.
Идеально для: динамических UI, плагинов, игровых и интерактивных систем.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍15🔥7🤝1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤12👍11🤝1
Фильтруем объекты по ключу и значению!
В разработке часто нужно фильтровать списки объектов по динамическим критериям. Это помогает отбирать нужные данные из API, работать с таблицами и списками.
Например, есть массив пользователей с разными статусами:
Напишем универсальную функцию, которая принимает массив, ключ и искомое значение. Она вернёт только те объекты, где значение поля совпадает:
Используем функцию для получения только активных пользователей:
🔥 Такой приём пригодится в любой работе с данными — валидации, отображении и логике.
📣 JS Ready | #практика
В разработке часто нужно фильтровать списки объектов по динамическим критериям. Это помогает отбирать нужные данные из API, работать с таблицами и списками.
Например, есть массив пользователей с разными статусами:
const data = [
{ id: 1, status: "active" },
{ id: 2, status: "inactive" },
{ id: 3, status: "active" },
];
Напишем универсальную функцию, которая принимает массив, ключ и искомое значение. Она вернёт только те объекты, где значение поля совпадает:
function filterByKey(arr, key, value) {
return arr.filter(item => item[key] === value);
}Используем функцию для получения только активных пользователей:
const active = filterByKey(data, "status", "active");
console.log(active); // объекты со статусом "active"
🔥 Такой приём пригодится в любой работе с данными — валидации, отображении и логике.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥8👍7