Split up Evenly es-419 Explainer

Explicador de Divide de forma uniforme

Objetivo de este acertijo: Completar la definición de la función average(), de modo que devuelva el valor promedio de array.

Tutorial de la solución: El promedio (también llamado “media aritmética”) de un conjunto de números se calcula sumando todos los números y luego dividiendo el total por el número de valores usados.

La definición de la función comienza creando una variable llamada total. Dado que todavía no se ha sumado nada, comienza en 0. A continuación, hay un for...of loop que pasa por cada element de array. Dentro del ciclo, el element se debe agregar al total usando el operador +=. Una vez que se ha terminado el ciclo, el total será la suma de todos los números en array. Para return (devolver) el promedio, el total se debe dividir por el número de valores. El número de valores corresponde a .length de array, de modo que el valor return debe ser total / array.length.

Solución del código de ejemplo:
(Pulsa a continuación para revelar)

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

function average(array) {
  let total = 0;
  for (let element of array) {
    total += element;
  }
  return total/array.length;
}

let grasslandRatings = getRatings(getData('Grassland', findHotels));
console.log(grasslandRatings);
console.log('The average is:');
console.log(average(grasslandRatings));

Conceptos de JavaScript: operador aritmético (/), operador de asignación (+=), funciones de devolución de llamada, funciones de llamada, bloque de código (for loop, función), console.log(), import, .length
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 getRatings = hotelList => {
   hotelList.map(hotel => hotel.rating)
};
7 Likes

THIS TOPIC RESOLVED

5 Likes