Added citizen filter by part of the name

This commit is contained in:
UndecimoDia 2026-07-23 18:22:22 +03:00
parent 645566b295
commit f631595cca

View file

@ -67,10 +67,20 @@
<div id="db-out"></div>`; <div id="db-out"></div>`;
dbOut = p.querySelector('#db-out'); dbOut = p.querySelector('#db-out');
p.querySelector('#q-go').onclick = () => { p.querySelector('#q-go').onclick = () => {
const q = p.querySelector('#q-name').value.trim().toLowerCase(); const q = p.querySelector('#q-name').value.trim();
const hit = App.init.citizens.find(c => c.name.toLowerCase() === q); if (!q) { lastRows = null; dbOut.innerHTML = '<p class="dim">— Введіть ім\'я або прізвище.</p>'; return; }
if (!hit) { lastRows = null; dbOut.innerHTML = '<p class="dim">— Записів не знайдено. Перевірте написання.</p>'; return; } // Розбиваємо введений запит на слова
lastRows = [hit]; renderRows(); 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 = '<p class="dim">— Записів не знайдено. Спробуйте інший початок.</p>';
return;
}
renderRows();
}; };
p.querySelector('#f-go').onclick = () => { p.querySelector('#f-go').onclick = () => {
const v = id => p.querySelector(id).value; const v = id => p.querySelector(id).value;