Advertisement
AreWe

order-the-names

Sep 27th, 2020
974
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. solve = () => {
  2.     const list = document.getElementsByTagName('li');
  3.     const names = 'abcdefghijklmnopqrstuvwxyz'
  4.         .toUpperCase()
  5.         .split('')
  6.         .reduce((names, letter, idx) => Object.assign(names, { [letter]: list[idx].textContent }), {});
  7.  
  8.     const getSortedList = (names = {}) => {
  9.         return '<li>' + Object.values(names).join('</li><li>') + '</li>';
  10.     };
  11.  
  12.     document.getElementsByTagName('button')[0].addEventListener('click', () => {
  13.         let name = document.getElementsByTagName('input')[0].value;
  14.         if (!name) {
  15.             return;
  16.         }
  17.  
  18.         name = `${name[0].toUpperCase()}${name.slice(1).toLowerCase()}`;
  19.  
  20.         if (names[name[0].toUpperCase()]) {
  21.             names[name[0].toUpperCase()] += `, ${name}`;
  22.         } else {
  23.             names[name[0].toUpperCase()] = name;
  24.         }
  25.  
  26.         const ol = document.getElementsByTagName('ol')[0];
  27.         ol.innerHTML = getSortedList(names);
  28.  
  29.         document.getElementsByTagName('input')[0].value = '';
  30.     });
  31. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement