function concert(input) {
let bands = [];
let lastBand = input.pop();
let command = input.shift();
while (command != "start of concert") {
if (command.includes("Add")) {
let [comm, bandName, bandMembers] = command.split("; ");
let bandMembersArr = bandMembers.split(", ");
let newBand = { name: bandName, members: bandMembersArr }
let bandExists = false;
bands.forEach(band => {
if (band["name"] == bandName) {
bandExists = true;
bandMembersArr.forEach(element => {
if (band.hasOwnProperty("members")) {
if (!band["members"].includes(element)) {
band["members"].push(element);
}
} else {
band["members"] = bandMembersArr;
}
});
}
});
if (bandExists == false) {
bands.push(newBand);
}
} else if (command.includes("Play")) {
let [com, bandName, playtime] = command.split("; ");
playtime = Number(playtime);
let newBand = { name: bandName, time: playtime };
let bandExists = false;
bands.forEach(band => {
if (band["name"] == bandName) {
bandExists = true;
if (!band.hasOwnProperty("time")) {
band["time"] = playtime;
} else {
band["time"] += playtime;
}
}
});
if (bandExists == false) {
bands.push(newBand);
}
}
command = input.shift();
}
let sorted = bands.sort((a, b) => {if (a["time"] !== b["time"]) {
return b["time"] - a["time"]
} else {
return a["name"].localeCompare(b["name"]);
}});
let totalTime = 0;
bands.forEach(band => {
totalTime += band["time"];
});
console.log(`Total time: ${totalTime}`);
sorted.forEach(element => {
console.log(`${element["name"]} -> ${element["time"]}`);
});
console.log(lastBand);
sorted.forEach(element => {
if (element["name"] == lastBand) {
let membersArr = element["members"];
membersArr.forEach(member => {
console.log(`=> ${member}`);
});
}
});
}