Add It to the List es-419 Explainer

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);
};
5 Likes

Esta es la forma para poder avanzar

5 Likes

Hola Mikel, no he podido avanzar con este ejercicio, trato de hacer lo que usted sugiere y no me funciona con las teclas de codigo prestablecidas que uno puede seleccionar ni me deja reescribirlo, estoy trabajando en google crome sera por eso? gracias por cualquier ayuda al respecto!

2 Likes

Hola tienes que eliminar las [] así:
Image20210707181303
podrás avanzar

2 Likes

Hola yo no puedo pasar algo lo que ustedes hacen y no funciona :pensive: me podían pasar la respuesta para celular

3 Likes

Ah perdon nose como pasar al celular yo la eh echo en PC :((

1 Like

Hola lobofet te aclaro que de celular y pc es lo mismo te dejo la respuesta
Sin título

2 Likes

Excelente… Buena forma de resolverlo

Hola. De donde viene el “rating” en “element.rating”

Estuve probando todo y no me funciona :frowning: Screenshot_20211024-125240_Grasshopper|312x500

hola como puedo poner elemet,raiting juntos no me da la opcion

Gracias, Me ayudo mucho.