Advertisement
krustev_84

Untitled

Sep 5th, 2020 (edited)
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. function arenaTier(input) {
  2. let arena = {};
  3. let totalSkills = {};
  4.  
  5.  
  6. for (let line of input) {
  7. if (line === 'Ave Cesar') {
  8. break;
  9. } else {
  10. let [gladiator, technique, skill] = line.split(' -> ');
  11. skill = Number(skill);
  12.  
  13. if (technique !== undefined) {
  14. if (!arena[gladiator]) {
  15. arena[gladiator] = {};
  16. arena[gladiator][technique] = skill;
  17. } else {
  18. if (!arena[gladiator][technique]) {
  19. arena[gladiator][technique] = skill;
  20. } else {
  21. if (arena[gladiator][technique] < skill) {
  22. arena[gladiator][technique] = skill;
  23. }
  24. }
  25. }
  26. getTotalSkills()
  27.  
  28. } else {
  29. let [firstName, secondName] = gladiator.split(' vs ');
  30. if (arena.hasOwnProperty(firstName) && arena.hasOwnProperty(secondName)) {
  31.  
  32. for (let techniques of Object.entries(arena[firstName])) {
  33. for (let techniquesTwo of Object.entries(arena[secondName])) {
  34.  
  35. if (techniquesTwo[0] === techniques[0]) {
  36.  
  37. if (getTotalSkills(secondName) > getTotalSkills(firstName)) {
  38. delete totalSkills[firstName]
  39.  
  40. } else if (getTotalSkills(secondName) < getTotalSkills(firstName)) {
  41. delete totalSkills[secondName];
  42. }
  43. }
  44. }
  45. }
  46. }
  47. }
  48. }
  49. }
  50.  
  51. function getTotalSkills(name) {
  52.  
  53. for (let gladiator of Object.entries(arena)) {
  54. let sumOfSkills = 0;
  55. for (let technique of Object.entries(gladiator[1])) {
  56. sumOfSkills += technique[1];
  57. }
  58. totalSkills[gladiator[0]] = sumOfSkills;
  59.  
  60. }
  61. return totalSkills[name];
  62. }
  63.  
  64. let sortedByTotalSkills = Object.entries(totalSkills).sort((a, b) => {
  65. return b[1] - a[1] || a[0].localeCompare(b[0])
  66. });
  67.  
  68. for (let i = 0; i < sortedByTotalSkills.length; i++) {
  69. console.log(`${sortedByTotalSkills[i][0]}: ${sortedByTotalSkills[i][1]} skill`);
  70.  
  71. let sortedTechEntries = Object.entries(arena[sortedByTotalSkills[i][0]]).sort((a, b) => {
  72. return b[1] - a[1] || a[0].localeCompare(b[0]);
  73. });
  74.  
  75. for (let i = 0; i < sortedTechEntries.length; i++) {
  76. console.log(`- ${sortedTechEntries[i][0]} <!> ${sortedTechEntries[i][1]}`);
  77. }
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement