For the Right Price pt-br Explainer

Explicação de Pelo preço certo

Objetivo deste desafio: Criar a função underAHundred e usá-la como um filtro

Passo a passo da solução: A função underAHundred deve pegar um objeto de análise do hotel armazenado em hotel e retornar se o .price desse hotel é inferior a 100. Esse teste está escrito como hotel.price < 100 e deve ser usado como o valor return.

Para usar a função underAHundred como filtro para o grasslandHotels, use o método .filter() nele. O argumento do .filter() é uma função retorno de chamada, underAHundred, sem parênteses depois dele. grasslandHotels.filter(underAHundred) devolverá uma cópia do grasslandHotels mas somente os que têm uma propriedade .price inferior a 100.

Solução do código de exemplo:
(Toque abaixo para revelar)

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

let grasslandHotels = getData('Grassland', findHotels);

function underAHundred(hotel) {
  return hotel.price < 100;
}

let affordableHotels = grasslandHotels.filter(underAHundred);
console.log('Average Rating in Grassland under $100:');
console.log(averageRating(affordableHotels));

Conceitos de JavaScript: Funções retorno de chamada, Funções de chamada, Bloco de código (função), .filter(), 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: 98,
        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: 185,
        rating: 4.1
    },
    {
        type: 'The Grassy Suites',
        city: 'Grassland',
        price: 86,
        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: 189,
        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 averageRating = hotelList => {
   hotelList.map(hotel => hotel.rating).reduce((a, b) => a + b) / hotelList.length
};
1 Like

Olha aí… Galera pelo preço certo

1 Like

Graça a você eu consegui passar.