Guest User

netherRealms100/100

a guest
Jul 11th, 2023
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. function netherRealms(input) {
  2. let array = input.split(/[, ]+/g);
  3. let healthPattern = /[^0-9.\/+*-]/g;
  4. let demagePatern = /[+-]?\d+\.?\d*/g;
  5. let divideOrMultiply = /(?<multiply>[*])|(?<divide>[\/])/g;
  6. let resultHealth = 0
  7. let resultDemage = 0
  8. let object = {};
  9. for (let string of array) {
  10. object[string]={}
  11. let health = [...string.matchAll(healthPattern)]
  12. let demage = [...string.matchAll(demagePatern)]
  13. let divideOrMultiplies = [...string.matchAll(divideOrMultiply)]
  14. for (let i = 0; i < health.length; i++) {
  15. let text = health[i][0]
  16. let textAsCodeAscii = text.charCodeAt()
  17. resultHealth +=textAsCodeAscii
  18. }
  19. object[string]['health'] = resultHealth
  20. resultHealth = 0;
  21. for (let x = 0; x < demage.length; x++) {
  22. let number = Number(demage[x][0])
  23. resultDemage +=number
  24. }
  25. for (let el of divideOrMultiplies) {
  26. if (el.groups.multiply === '*'){
  27. resultDemage*=2
  28. }else if (el.groups.divide === '/'){
  29. resultDemage/=2
  30. }
  31. }
  32. object[string]['damage'] = resultDemage;
  33. resultDemage = 0;
  34.  
  35. }
  36. let arrNewMap = Object.entries(object).sort((a,b)=> (a[0]).localeCompare(b[0]))
  37. for (let [name, arrays] of arrNewMap) {
  38. console.log(`${name} - ${arrays['health']} health, ${arrays['damage'].toFixed(2)} damage`)
  39. }
  40. }
  41. netherRealms('bla,Aza44454zel//,Azazel');
Add Comment
Please, Sign In to add comment