Advertisement
Shell_Casing

autocomplete app

Jun 9th, 2019
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // searches and filters the json file
  2. async function searchStates(query) {
  3.     const response = await fetch('./data/state_capitals.json');
  4.     const states = await response.json();
  5.     // console.log(states);
  6.     // get matches to current query
  7.     let matches = states.filter(state => {
  8.         const regex = new RegExp(`^${query}`, `gi`);
  9.         return state.name.match(regex) || state.abbr.match(regex)
  10.     });
  11.    
  12.     if(query.length == 0) {
  13.         matches = [];
  14.         matchResults.innerHTML = '';
  15.     }
  16.     console.log(matches);
  17.    
  18.     displayMatches(matches);
  19. }
  20.  
  21. function displayMatches(matches) {
  22.     if(matches.length > 0) {
  23.         matches.forEach(match => {
  24.             const card = document.createElement('div');
  25.             card.classList.add('card');
  26.             card.classList.add('mb-3');
  27.             const p = document.createElement('p');
  28.             p.innerHTML = `<span class="text-secondary">Name: </span> <span class="text-primary">${match.name}</span>`;
  29.             const p1 = document.createElement('p');
  30.             p1.innerHTML = `<span class="text-secondary">Abbreviation: </span> <span class="text-primary">${match.abbr}</span>`;
  31.             const p2 = document.createElement('p');
  32.             p2.innerHTML = `<span class="text-secondary">Capital: </span> <span class="text-primary">${match.capital}</span>`;
  33.             card.append(p, p1, p2);
  34.             matchResults.append(card);
  35.         });
  36.  
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement