Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function practiceSessions(input) {
- let roads = {};
- for (let line of input) {
- if (line === 'END') {
- break;
- }
- line = line.split('->');
- let command = line[0];
- let roadName = line[1];
- let racer = line[2];
- if (command === 'Add') {
- if (!roads.hasOwnProperty(roadName)) {
- roads[roadName] = [racer];
- } else {
- roads[roadName].push(racer);
- }
- } else if (command === 'Move') {
- let nextRoad = line[3];
- if (roads.hasOwnProperty(roadName)) {
- let indexOfRacer = roads[roadName].indexOf(racer);
- let racerName = roads[roadName][indexOfRacer];
- if (indexOfRacer !== -1) {
- roads[roadName].splice(indexOfRacer, 1);
- roads[nextRoad].push(racerName);
- }
- }
- } else if (command === 'Close') {
- if (roads.hasOwnProperty(roadName)) {
- delete (roads[roadName]);
- }
- }
- }
- let sortedRoads = Object.entries(roads)
- .sort((a, b) => b[1].length - a[1].length || a[0].localeCompare(b[0]));
- console.log('Practice sessions:');
- for (let [road, racers] of sortedRoads) {
- console.log(road);
- racers.forEach(racer => {
- console.log(`++${racer}`)
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement