Explicador de Agrégalo a la lista
Objetivo de este acertijo: Agregar cada calificación de hotel al arreglo ratings
Tutorial de la solución: Se supone que la función getRatings()
toma un arreglo de los objects de reseñas de hoteles almacenados en hotelList
y luego devuelve
un arreglo sólo de las calificaciones para esos hoteles. El arreglo ratings
comienza vacío, y se devolverá al final de la función, pero entre esos pasos, se deben agregar todas las calificaciones.
Agrega un for...of
loop al medio de la definición de función. Ese ciclo debe ciclar por cada element of hotelList
. Dentro del ciclo, la calificación se debe agregar al arreglo usando .push()
. Para agregar algo al arreglo ratings
, usas ratings.push(...)
. Lo que quieres .push()
es element.rating
.
Solución del código de ejemplo:
(Pulsa a continuación para revelar)
import { getData, findHotels } from 'grasshopper.reviews';
function getRatings(hotelList) {
let ratings = [];
for (var element of hotelList) {
ratings.push(element.rating);
}
return ratings;
}
let grasslandHotels = getData('Grassland', findHotels);
console.log('Ratings Array:');
console.log(getRatings(grasslandHotels));
Conceptos de JavaScript: funciones de devolución de llamada, funciones de llamada, bloque de código (for loop, función), console.log()
, import
, .push()
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);
};