Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function messageManager(input){
- let capacity=Number(input.shift());
- input.pop();
- let users=[];
- input.forEach(element => {
- let elArr=element.split("=");
- let command=elArr[0];
- if (command=="Add"){
- let username=elArr[1];
- let messagesSent=Number(elArr[2]);
- let messagesReceived=Number(elArr[3]);
- let newUser={user:username, sent:messagesSent, received:messagesReceived};
- let userExists=false;
- users.forEach(u=>{
- if (u["user"]==username){
- userExists=true;
- }
- });
- if (!userExists){
- users.push(newUser);
- }
- } else if (command=="Empty"){
- let userToRemove=elArr[1];
- if (userToRemove=="All"){
- users=[];
- }
- let userToRemoveExists=false;
- let ind=-1;
- for (let i=0; i<users.length; i++){
- let currentUser=users[i];
- if (currentUser["user"]==userToRemove){
- userToRemoveExists=true;
- ind=i;
- }
- }
- if (userToRemoveExists){
- users.splice(ind, 1);
- }
- } else if (command=="Message"){
- let sender=elArr[1];
- let receiver=elArr[2];
- let senderExists=false;
- let receiverExists=false;
- let indexOfSender=-1;
- let indexOfReceiver=-1;
- for (let i=0; i<users.length; i++){
- let current=users[i];
- if (current["user"]==sender){
- senderExists=true;
- indexOfSender=i;
- } else if (current["user"]==receiver){
- receiverExists=true;
- indexOfReceiver=i;
- }
- } if (senderExists && receiverExists){
- users[indexOfSender]["sent"]++;
- users[indexOfReceiver]["received"]++;
- if (users[indexOfSender]["sent"]+users[indexOfSender]["received"]>=capacity){
- console.log(`${users[indexOfSender]["user"]} reached the capacity!`);
- users.splice(indexOfSender,1);
- }
- for (let i=0; i<users.length; i++){
- let current=users[i];
- if (current["user"]==receiver){
- indexOfReceiver=i;
- }
- }
- if (users[indexOfReceiver]["received"]+users[indexOfReceiver]["sent"]>=capacity){
- console.log(`${users[indexOfReceiver]["user"]} reached the capacity!`);
- users.splice(indexOfReceiver,1);
- }
- }
- }
- });
- users=users.sort((a,b)=>{
- if (a["received"]!==b["received"]){
- return b["received"]- a["received"];
- } else {
- return a["user"].localeCompare(b["user"]);
- }
- });
- console.log(`Users count: ${users.length}` );
- users.forEach(u=>{
- let totalMessages=u["received"]+u["sent"];
- console.log(`${u["user"]} - ${totalMessages}`)
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement