Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. /**
  2. * @param {string[]} emails
  3. * @return {number}
  4. */
  5. var numUniqueEmails = emails => {
  6. return emails.reduce((validMails, mail) => {
  7. const names = mail.split('@');
  8. let [local, domain] = names;
  9. const iPlus = [...local].findIndex(x => x === '+');
  10. if (iPlus !== -1) { local = local.substr(0, iPlus); }
  11. const key = local.split('.').join('') + '@' + domain;
  12. if (!validMails.has(key)) { validMails.add(key); }
  13. return validMails
  14. }, new Set).size;
  15. };
  16.  
  17. /**
  18. * @param {string[]} emails
  19. * @return {number}
  20. */
  21. var numUniqueEmails2 = emails => {
  22. const validMails = new Set();
  23. for (const mail of emails) {
  24. let [local, domain] = mail.split('@');
  25. const iPlus = [...local].findIndex(x => x === '+');
  26. if (iPlus !== -1) { local = local.substr(0, iPlus); }
  27. const key = [...local].filter(x => x !== '.').join() + '@' + domain;
  28. if (!validMails.has(key)) { validMails.add(key); }
  29. }
  30. return validMails.size;
  31. };
  32.  
  33. /**
  34. * @param {string[]} emails
  35. * @return {number}
  36. */
  37. var numUniqueEmails3 = emails => {
  38. const validMails = new Set();
  39. for (const mail of emails) {
  40. let [local, domain] = mail.split('@');
  41. local = local.replace(/+(.*)$/, '')
  42. .replace(/./g, '');
  43. console.log(local);
  44. const key = `${local}@${domain}`;
  45. if (!validMails.has(key)) { validMails.add(key); }
  46. }
  47. return validMails.size;
  48. };
  49.  
  50. const names = mail.split('@');
  51. let [local, domain] = names;
  52.  
  53. let [local, domain] = mail.split('@');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement