It Will Average Out pt-br Explainer

Explicação de Cálculo da média

Objetivo deste desafio: Completar a definição da função averageRating() para que ela retorne a classificação média para uma lista de hotéis. Em seguida, encontre a classificação média para hotéis Hoptropolis.

Passo a passo da solução: As funções average() e getRatings() que você criou nos desafios anteriores são importadas para que você possa usá-las aqui.

A definição da função averageRating() terá uma lista de análises armazenada em hotelList. Em seguida, usa a função getRatings() para obter uma array apenas das classificações daqueles hotéis e armazená-las em ratings. Para calcular a média de ratings, é possível usar sua função average(). Em vez de retornar 0, a função deve retornar average(ratings).

A variável hoptropolisHotels está armazenando uma array de todos os hotéis em Hoptropolis. Para obter a classificação média, você pode usar averageRating(hoptropolisHotels). Para ver o resultado dessa chamada, você precisa usar console.log(). O comando inteiro deve ir para o final do seu código.

Solução do código de exemplo:
(Toque abaixo para revelar)

import { getData, findHotels } from 'grasshopper.reviews';
import { average, getRatings } from 'myFunctions';

function averageRating(hotelList) {
  let ratings = getRatings(hotelList);
  return average(ratings);
}

let grasslandHotels = getData('Grassland', findHotels);
console.log('Average Grassland hotel rating:');
console.log(averageRating(grasslandHotels));

let hoptropolisHotels = getData('Hoptropolis', findHotels);
console.log('Average Hoptropolis hotel rating:');
console.log(averageRating(hoptropolisHotels));

Conceitos de JavaScript: Funções retorno de chamada, Funções de chamada, Bloco de código (função), import
Código Adicional (código oculto executado antes do código do desafio):

let _hotelReviews = [
    {
        type: 'Hopaday Inn',
        city: 'Hopalot',
        price: 138,
        rating: 4.0
    },
    {
        type: 'Hopaday Inn',
        city: 'Hopalot',
        price: 78,
        rating: 3.8
    },
    {
        type: 'Hopaday Inn',
        city: 'Hoptropolis',
        price: 86,
        rating: 2.4
    },
    {
        type: 'Hopaday Inn',
        city: 'Hoptropolis',
        price: 126,
        rating: 4.4
    },
    {
        type: 'Hopaday Inn',
        city: 'Grassland',
        price: 138,
        rating: 3.0
    },
    {
        type: 'Hopaday Inn',
        city: 'Grassland',
        price: 245,
        rating: 4.6
    },
    {
        type: 'The Grassy Suites',
        city: 'Hopalot',
        price: 189,
        rating: 4.4
    },
    {
        type: 'The Grassy Suites',
        city: 'Hopalot',
        price: 111,
        rating: 2.4
    },
    {
        type: 'The Grassy Suites',
        city: 'Hoptropolis',
        price: 171,
        rating: 2.8
    },
    {
        type: 'The Grassy Suites',
        city: 'Hoptropolis',
        price: 191,
        rating: 2.8
    },
    {
        type: 'The Grassy Suites',
        city: 'Grassland',
        price: 265,
        rating: 4.1
    },
    {
        type: 'The Grassy Suites',
        city: 'Grassland',
        price: 186,
        rating: 3.5
    },
    {
        type: 'Hopton Inn',
        city: 'Hopalot',
        price: 160,
        rating: 2.4
    },
    {
        type: 'Hopton Inn',
        city: 'Hoptropolis',
        price: 226,
        rating: 4.5
    },
    {
        type: 'Hopton Inn',
        city: 'Hoptropolis',
        price: 192,
        rating: 3.5
    },
    {
        type: 'Hopton Inn',
        city: 'Grassland',
        price: 149,
        rating: 4.9
    }
];

const getData = (city, afunction) => {
   afunction(city.trim().charAt(0).toUpperCase() + city.trim().toLowerCase().slice(1));
};

const findHotels = city => {
   _hotelReviews.filter( review => review.city === city);
};

const average = array => {
   array.reduce((a, b) => a + b) / array.length
};

const getRatings = hotelList => {
   hotelList.map(hotel => hotel.rating)
};
8 Likes

Olá pessoal, foi dificil mais consegui, li e re-li varias vezes e varias tentativas até acertar!!!
Segue o print ai pra ajudar vcs, abraço.

7 Likes

A questão pede para você complementar com esses códigos aí. Boa sorte!

2 Likes

Uploading: Screenshot_20220404-121535.png…