Advertisement
sivancheva

travelTime JS

Sep 16th, 2018
827
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. function travelTime(arr) {
  2.  
  3. let result = {};
  4.  
  5. for (let line of arr) {
  6.  
  7. let [state, town, price] = line.split(" > ").map(x=>x.trim());
  8.  
  9. town = town.charAt(0).toUpperCase() + town.slice(1);
  10.  
  11. if (!result.hasOwnProperty(state)) {
  12. result[state] = {};
  13. }
  14. if (!result[state].hasOwnProperty(town)) {
  15. result[state][town] = Number.POSITIVE_INFINITY;
  16. }
  17. if (result[state].hasOwnProperty(town)) {
  18. if ( result[state][town] > Number(price)) {
  19. result[state][town] = Number(price);
  20. }
  21. }
  22. }
  23. let sortedStates = Object.keys(result).sort((a, b)=>{
  24. "use strict";
  25. return a.toLowerCase().localeCompare(b.toLowerCase());
  26. });
  27.  
  28. for (let state of sortedStates) {
  29. let innerResult = "";
  30. innerResult += (state + " -> ");
  31.  
  32. let sortedTownsByPrice = Object.keys(result[state]).sort((t1,t2)=>{
  33. "use strict";
  34. return result[state][t1] - result[state][t2];
  35. });
  36.  
  37. for (let obj of sortedTownsByPrice) {
  38. innerResult += (obj + " -> ");
  39. innerResult += (result[state][obj]+ " ");
  40. }
  41.  
  42. console.log(innerResult.trim());
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement