Added citizen filter by part of the name
This commit is contained in:
parent
645566b295
commit
f631595cca
1 changed files with 14 additions and 4 deletions
|
|
@ -67,10 +67,20 @@
|
|||
<div id="db-out"></div>`;
|
||||
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 = '<p class="dim">— Записів не знайдено. Перевірте написання.</p>'; return; }
|
||||
lastRows = [hit]; renderRows();
|
||||
const q = p.querySelector('#q-name').value.trim();
|
||||
if (!q) { lastRows = null; dbOut.innerHTML = '<p class="dim">— Введіть ім\'я або прізвище.</p>'; 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 = '<p class="dim">— Записів не знайдено. Спробуйте інший початок.</p>';
|
||||
return;
|
||||
}
|
||||
renderRows();
|
||||
};
|
||||
p.querySelector('#f-go').onclick = () => {
|
||||
const v = id => p.querySelector(id).value;
|
||||
|
|
|
|||
Loading…
Reference in a new issue