Advertisement
DNNdrago

04. Concerts

Jul 30th, 2014
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve (input) {
  2.  
  3.     var cities = {};
  4.     var result = '';
  5.  
  6.     for (var index in input) {
  7.         var line = input[index].split(' | ');
  8.         var band = line[0];
  9.         var city = line[1];
  10.         var stadium = line[3];
  11.  
  12.         if (!(city in cities)) {
  13.             cities[city] = {};
  14.         }
  15.  
  16.         if (! (stadium in cities[city])){
  17.             cities[city][stadium] = [];
  18.         }
  19.  
  20.         if(cities[city][stadium].indexOf(band) === -1){
  21.             cities[city][stadium].push(band);
  22.         }
  23.  
  24.     }
  25.  
  26.     var sortedCities = [];
  27.     for (var city in cities) {
  28.         sortedCities.push(city);
  29.     }
  30.     sortedCities.sort();
  31.  
  32.     result += '{';
  33.     for (var i = 0; i < sortedCities.length; i += 1) {
  34.         var sortedStadiums = [];
  35.         for (var stadium in cities[sortedCities[i]]) {
  36.             sortedStadiums.push(stadium);
  37.         }
  38.         sortedStadiums.sort();
  39.  
  40.         var outputStadiums = '{'
  41.         for(var j = 0; j < sortedStadiums.length; j += 1) {
  42.             cities[sortedCities[i]][sortedStadiums[j]].sort();
  43.  
  44.             var outputConcerts = '';
  45.             for(var concert in cities[sortedCities[i]][sortedStadiums[j]]) {
  46.                 outputConcerts += '"' + cities[sortedCities[i]][sortedStadiums[j]][concert] + '",';
  47.             }
  48.             outputConcerts = outputConcerts.substr(0, outputConcerts.length -1);
  49.  
  50.             outputStadiums += '"' + sortedStadiums[j] + '":[' + outputConcerts + '],';//'":[' + outputConcerts + ']},' ;
  51.         }
  52.         outputStadiums = outputStadiums.substr(0, outputStadiums.length - 1);
  53.         outputStadiums += '}'
  54.  
  55.         result += '"' + sortedCities[i] + '":' + outputStadiums + ',';
  56.     }
  57.     result = result.substr(0, result.length - 1);
  58.  
  59.     result += '}';
  60.  
  61.  
  62.     console.log(result)
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement