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}`); }); } }); }