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>`;
|
<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;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue