Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export default function (data) {
- return data
- .reduce((acc,el) =>{
- el.pets.map(pet => {
- if(!acc.includes(pet.name)){
- acc.push(pet.name);
- }
- })
- return acc;
- },[]) //array with pets unique names
- .sort()
- .map(el => {
- //pets total power after each iteration
- const petTotalPower = data.reduce((acc,player) => {
- player.pets.map(pet => {
- if(pet.name === el){
- acc += pet.power
- }
- })
- return acc;
- },0);
- //pets max power after each iteration
- const maxPetPower = data.reduce((acc,player)=>{
- player.pets.map( pet => {
- if(pet.name === el && pet.power > acc){
- acc = pet.power
- }
- })
- return acc;
- }, 0);
- //filters the most powerful player => returns array with objects
- const mostPowerfulPlayer = data.filter(el => {
- for( let obj of el.pets){
- if (obj.power === maxPetPower){
- return true;
- }
- }
- return false;
- })
- return {
- 'name': el,
- 'totalPower': petTotalPower,
- 'mostPowerfulPlayer': mostPowerfulPlayer[0]
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment