Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function plantDiscovery(input){
- let plantsObj = {};
- let discoveredPlants = Number(input.shift());
- for(let i = 0; i < discoveredPlants; i++) {
- let [plant, rarity] = input[i].split('<->');
- if(!plantsObj.hasOwnProperty(plant)) {
- plantsObj[plant] = {
- rarity: 0,
- rating: [],
- }
- }
- plantsObj[plant].rarity += Number(rarity);
- }
- let index = discoveredPlants;
- while(input[index] !== 'Exhibition') {
- let [action, ...data] = input[index].split(': ');
- switch (action) {
- case 'Rate':
- let [plant, rating] = data[0].split(' - ');
- if(plantsObj.hasOwnProperty(plant)) {
- plantsObj[plant].rating.push(Number(rating));
- } else {
- console.log("error");
- }
- break;
- case 'Update':
- let [plantName, newRarity] = data[0].split(' - ');
- if(plantsObj.hasOwnProperty(plantName)) {
- plantsObj[plantName].rarity = Number(newRarity);
- } else {
- console.log("error");
- }
- break;
- case 'Reset':
- let plantToReset = data[0];
- if(plantsObj.hasOwnProperty(plantToReset)) {
- plantsObj[plantToReset].rating = [];
- } else {
- console.log("error");
- }
- break;
- }
- index++;
- }
- console.log("Plants for the exhibition:");
- for(let key in plantsObj) {
- let totalGrades = plantsObj[key].rating.length;
- let average = 0;
- if(totalGrades !== 0) {
- plantsObj[key].rating = plantsObj[key].rating.reduce((a,b) => a+b);
- average = plantsObj[key].rating/totalGrades;
- }
- console.log(`- ${key}; Rarity: ${plantsObj[key].rarity}; Rating: ${average.toFixed(2)}`);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment