It Will Average Out es-419 Explainer

Explicador de Se promediará

Objetivo de este acertijo: Completar la definición de la función averageRating(), de modo que devuelve la calificación de una lista de hoteles. Luego encontrar la calificación promedia de los hoteles Hoptropolis.

Tutorial de la solución: Las funciones average() y getRatings() que creaste en los acertijos anteriores se importan para que puedas usarlos aquí.

La definición de la función averageRating() tomará una lista de reseñas almacenadas en hotelList. Luego usa la función getRatings() para obtener un arreglo solo de las calificaciones de esos hoteles y lo almacena en ratings. Para calcular el promedio de las ratings, puedes usar tu función average(). En vez de devolver 0, la función debe devolver average(ratings).

La variable hoptropolisHotels almacena un arreglo de todos los hoteles en Hoptropolis. Para obtener la calificación promedio, puedes usar averageRating(hoptropolisHotels). Para ver la salida de esa llamada, hay que usar console.log(). Ese comando entero debe ir en la parte inferior de tu código.

Solución del código de ejemplo:
(Pulsa a continuación 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));

Conceptos de JavaScript: funciones de devolución de llamada, funciones de llamada, bloque de código (función), import
Código adicional (código oculto que se ejecuta antes del código del acertijo):

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)
};
5 Likes

Gracias por la ayuda !:bulb::smiley:

1 Like

Estaba más difícil el anterior