diff --git a/chapter3/public/analyst.js b/chapter3/public/analyst.js index db50d4d..a69f7bf 100644 --- a/chapter3/public/analyst.js +++ b/chapter3/public/analyst.js @@ -67,10 +67,20 @@
`; dbOut = p.querySelector('#db-out'); p.querySelector('#q-go').onclick = () => { - const q = p.querySelector('#q-name').value.trim().toLowerCase(); - const hit = App.init.citizens.find(c => c.name.toLowerCase() === q); - if (!hit) { lastRows = null; dbOut.innerHTML = '— Записів не знайдено. Перевірте написання.
'; return; } - lastRows = [hit]; renderRows(); + const q = p.querySelector('#q-name').value.trim(); + if (!q) { lastRows = null; dbOut.innerHTML = '— Введіть ім\'я або прізвище.
'; return; } + // Розбиваємо введений запит на слова + const words = q.split(/\s+/); + // Фільтруємо: кожне введене слово має збігатися з початком якогось слова в імені громадянина + lastRows = App.init.citizens.filter(c => { + const nameWords = c.name.split(/\s+/); + return words.every(w => nameWords.some(nw => nw.startsWith(w))); + }); + if (!lastRows.length) { + dbOut.innerHTML = '— Записів не знайдено. Спробуйте інший початок.
'; + return; + } + renderRows(); }; p.querySelector('#f-go').onclick = () => { const v = id => p.querySelector(id).value;