Get What You Ask For es-419 Explainer

Explicador de Obtén lo que pediste

Objetivo de este acertijo: Obtener las reseñas de hoteles de Grassland y registrar todas en la consola

Tutorial de la solución: Las funciones getData() y findHotels se importan. getData() se usa para acceder a una base de datos de reseñas, y la función findHotels se usa como una devolución de llamada en getData() para recuperar solo reseñas de hoteles. Cada reseña de hotel se almacena como un object con 4 propiedades: type, city, price y rating. La función printHotel() tomará una reseña de hotel y registrará todas sus propiedades en la consola.

El primer argumento de la función getDat() es el nombre de una ciudad. El acertijo pide cambiarlo de 'Hopalot' a 'Grassland'. El resultado de getData() se almacena en grasslandHotels. Estas reseñas de hoteles de Grassland se pueden imprimir usando la función printHotel. Aplica el método .forEach()a grasslandHotels, y usa la devolución de llamada printHotel como el argumento.

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

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

function printHotel(hotel) {
  console.log('___HOTEL_INFO___');
  console.log('type: ' + hotel.type);
  console.log('city: ' + hotel.city);
  console.log('price: ' + hotel.price);
  console.log('rating: ' + hotel.rating);
}

let grasslandHotels = getData('Grassland', findHotels);
grasslandHotels.forEach(printHotel);

Conceptos de JavaScript: funciones de devolución de llamada, funciones de llamada, bloque de código (función), console.log(), .forEach(), 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);
};
1 Like

Alguien a podido pasarlo, que me pueda ayudar porfa? Ya intenté con la respuesta del foro y siempre me da error, no me deja cambiar de acertijo
Gracias

6 Likes

4 Likes

se me hace dificil no me sale de vdd ya intente 20 veses :confused:
:confused:

import { getData, findHotels } from ‘grasshopper.reviews’;

function printHotel(hotel) {
console.log(‘HOTEL_INFO’);
console.log('type: ’ + hotel.type);
console.log('city: ’ + hotel.city);
console.log('price: ’ + hotel.price);
console.log('rating: ’ + hotel.rating);
}

let grasslandHotels = getData(‘Grassland’, findHotels);
grasslandHotels.forEach(printHotel);

2 Likes

EXPLICACION EN ESPAÑOL
Gente lo logre pasar solo utilicen las demás opciones y le dan a ejecutar código osea en lugar de print hotel pongan “hotel” y le dan a ejecutar código, les va a salir mal, luego lo quitan y ponen “findHotels”, le dan otra vez a ejecutar código y les va a dar que esta mal, luego vuelven a poner print hotel y le dan a ejecutar codigo y se desbugea, para los que no saben pq hay problema con esta lección espero y les haya servido. :3

ENGLISH EXPLANATION
People manage to pass it, just use the other options and give it to run code instead of print hotel put “hotel” and give it to execute code, it will go wrong, then remove it and put “findHotels”, give it another Once to execute code and it will give them that it is wrong, then return to print hotel and they give it to execute code and it is debugged, for those who do not know, because there is a problem with this lesson I hope and it has served you. :3

La solución es grasslandHotels.forEach(printHotel)
No confundir printHotel con printHotel( )