Дякую!!! Як завжди, коли ви пояснюєте, то начебто все зрозуміло, що для чого прописується і викликається. Але практичне завдання це для мене із сфери фантастики🙃
Вау, ледве макитру не зломав використовуючи setimeout, розумію що він асінхронний але спочатку не міг допетрити як їого використовувати, він висмикує твій код с потіка. Чстина в таймауті зависає, а код несеться далі.А тут такий чудовий лайфхак 🙂
Привіт! Судячи з прикладу на 12 хвилині, не сказав би, що асінк тільки син. цукор. Все таки виглядає так, що там логіка змінюється, логіка виконання коду і порядку його виведення. Дякую за урок!
Дуже дякую за урок!) Нажаль завдання не виконала заплуталась та не знала як його зробити((( Але завтра буду передивлятись тему знову щоб краще зрозуміти.
Привіт. А якщо у функції filterUsers використати querySelectorAll замість getElementsByClassName, то можна обійтись без спред оператора і вкладання псевдомасива в масив[...document.getElementsByClassName]?
Я не роздуплився з завданням і 2 дні сортував масив( Навіть намагався закодити відстань Левенштейна. Потім всеж нагуглив як працювати з методом sort. Було цікаво
function filterUsers(e) { const userListItems = document.getElementsByClassName("users-list-item"); const searchTerm = e.target.value.toLowerCase(); // Перетворення введеного значення на малі літери for (const item of userListItems) { const userName = item.innerHTML.toLowerCase(); // Перетворення тексту елемента на малі літери if (!userName.startsWith(searchTerm)) { item.classList.add("hidden"); } else { item.classList.remove("hidden"); } } } ось так я зробив
Підкажіть, будь ласка, чим відрізняється (response => response.json()) i (data => data.json())? Не розумію в чому різниця і коли що використовувати Буду дуже вдячна за відповідь!
Краще покажи варіанти реалізації затримки перед фільтрацією (щоб на бек не відправляти кожен раз запит при кожній новій букві не дописаного тексту) хоча у відео ти і фільтруєш тільки ті данні які отримав затримка дуже корисна річ
Привіт і дякую за урок. Але твоя оптимізація не надто хороша тому, що якщо ввести одну літеру то все одно він буде перевіряти той цикл при кожному наступному натисканні))
Автор намагається все розжувати) щоб люди краще все зрозуміли, комц не подобається, то нехай шукає інший канал, де в загальному пробігаються, а не намагаються пояснити
Було б чудово у майбутньому, подивитися ваше відео про роз'яснення декількох основних у роботі паттернів проектування
Дякую!!! Як завжди, коли ви пояснюєте, то начебто все зрозуміло, що для чого прописується і викликається. Але практичне завдання це для мене із сфери фантастики🙃
Привіт! Чудовий вчитель, веселий і пояснюєш цікаво. Дякую! Чекаю нових відео
Контент супер, як завжди. Лайк 🙂
Контент супер, продовжуй і як завжди я чекаю нове відео)
Дякуюююю! Як добре, що я вас знайшла ❤❤❤ українською, з гумором, так зрозуміло 👍 клас
у вас дуже класні відоси, все зрозуміло, детально і цікаво! дуже вам дякую!
"МИ закинули псевдомасив у масив і тут *Я* викликаю..."
командна робота
Дуже тобі дякую за працю!
Лайк, підписка і рекомендація усім, хто почне вчити JS! =)
дякую за матеріал і роз'яснення
Вау, ледве макитру не зломав використовуючи setimeout, розумію що він асінхронний але спочатку не міг допетрити як їого використовувати, він висмикує твій код с потіка. Чстина в таймауті зависає, а код несеться далі.А тут такий чудовий лайфхак 🙂
Подяка за корисний контент по скріптам)))
Дякую за нове відео
Супер, знов шрифт більший (краще видно і очі менше втомлюються))
Привіт! Судячи з прикладу на 12 хвилині, не сказав би, що асінк тільки син. цукор. Все таки виглядає так, що там логіка змінюється, логіка виконання коду і порядку його виведення. Дякую за урок!
Дуже дякую за урок!) Нажаль завдання не виконала заплуталась та не знала як його зробити((( Але завтра буду передивлятись тему знову щоб краще зрозуміти.
// Величезна подяка за урок!
// Вирішив через map i forEach, а також через подію "input", також для гнучкості фільтрації використав includes.
Я так зрозумів, що в js як хочеш так і пишеш код😅 головне щоб працював, чогось багато способів є😬
А я використовувала input замість keyup. То виходить цю додаткову перевірку можна було не прописувати на початку функції filterUsers()?
Дивне питання, але що означає метод target в рядку e.target.value ?
Привіт. А якщо у функції filterUsers використати querySelectorAll замість getElementsByClassName, то можна обійтись без спред оператора і вкладання псевдомасива в масив[...document.getElementsByClassName]?
Я не роздуплився з завданням і 2 дні сортував масив( Навіть намагався закодити відстань Левенштейна. Потім всеж нагуглив як працювати з методом sort. Було цікаво
Друга частина коду трішке важче зайшла.Перша ліпше була так як схоже робили в попередніх уроках.
Чекаю продовження
Коли нове відео? 😊
Які теми ще будуть розглянуті в курсі по JS?
!але коли пишеш пошук ім'я в інпут полі з маленької літери,то це не працює,тільки з великої,як це виправити??
function filterUsers(e) {
const userListItems = document.getElementsByClassName("users-list-item");
const searchTerm = e.target.value.toLowerCase(); // Перетворення введеного значення на малі літери
for (const item of userListItems) {
const userName = item.innerHTML.toLowerCase(); // Перетворення тексту елемента на малі літери
if (!userName.startsWith(searchTerm)) {
item.classList.add("hidden");
} else {
item.classList.remove("hidden");
}
}
} ось так я зробив
Давайте попросимо автора про тайпскрипт курс записати українською))
Спасибо за урок!
Как сделать выделения совпадающего текства?
мое решение:
const input = document.querySelector('.input')
async function PrintUsers() {
const request = await fetch(urlUsers)
const dataUsers = await request.json()
dataUsers.forEach(user => {
const li = document.createElement('li')
li.textContent = user.name
li.classList = 'user'
usersList.appendChild(li)
})
}
function filterUsers() {
const allUsers = document.getElementsByClassName('user')
const inputText = input.value.toLowerCase()
for (const user of allUsers) {
const userName = user.innerHTML.toLowerCase()
if (userName.includes(inputText)) {
user.classList.remove('hidden')
} else {
user.classList.add('hidden')
}
}
}
PrintUsers()
input.addEventListener('keyup', filterUsers)
input.addEventListener('change', filterUsers)
Підкажіть, будь ласка, чим відрізняється (response => response.json()) i (data => data.json())?
Не розумію в чому різниця і коли що використовувати
Буду дуже вдячна за відповідь!
Все абсолютно те саме, просто різна назва параметру функції. Ви можете називати його як завгодно, хоч cat=> cat.json()
@@savchukit1454 дякую за відповідь!
Мало такого контенту українською. Продовжуй !
А ти репетиторством не думав зайнятись?)
Краще покажи варіанти реалізації затримки перед фільтрацією (щоб на бек не відправляти кожен раз запит при кожній новій букві не дописаного тексту) хоча у відео ти і фільтруєш тільки ті данні які отримав затримка дуже корисна річ
Та, мейк сенс)
давай контент про React)
на все свій час і воля божа)
👁
Привіт і дякую за урок. Але твоя оптимізація не надто хороша тому, що якщо ввести одну літеру то все одно він буде перевіряти той цикл при кожному наступному натисканні))
Якраз почав потроху вивчати JS.
Дуже багато води
Автор намагається все розжувати) щоб люди краще все зрозуміли, комц не подобається, то нехай шукає інший канал, де в загальному пробігаються, а не намагаються пояснити
а якщо зробити так: for (const user of usersListItems) {
if (user.includes(event.target.value)) { ... }}