Get What You Ask For pt-br Explainer

Explicação de Obtenha o que você pede

Objetivo deste desafio: Receber as avaliações do hotel de Grassland e registrar todas elas no console

Passo a passo da solução: As funções getData() e findHotels são importadas. getData() é usado para acessar um banco de dados de análises e a função findHotels é usada como retorno de chamada em getData() para recuperar apenas análises de hotéis. Cada análise do hotel é armazenada como um objeto com 4 propriedades: type, city, price e rating. A função printHotel() pegará uma análise do hotel e registrará todas as suas propriedades no console.

O 1º argumento da função getDat() é o nome de uma cidade. O desafio pede para mudar isso de 'Hopalot' para 'Grassland'. O resultado de getData() é armazenado em grasslandHotels. Estas análises de hotéis de Grassland podem ser impressas usando-se a função printHotel. Aplique o método .forEach() para grasslandHotels e use o retorno de chamada printHotel como argumento.

Solução do código de exemplo:

(Toque abaixo 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);

Conceitos de JavaScript: Funções retorno de chamada, Funções de chamada, Bloco de código (função), console.log(), .forEach(), 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);
};
5 Likes

Tenho 13 anos Vou tentar ajuda vcs que estão com dificuldade nesse desafio espero que dei certo

1 Like