Bookworm es-419 Explainer

Explicación de Ratón de biblioteca

Objetivo de este acertijo: Usar el método de arreglo .forEach() para actualizar la propiedad de cada elemento en un arreglo.

Tutorial de la solución: El método de arreglo .forEach() toma una función como un argumento (también conocido como función de devolución de llamada), e itera por un arreglo usando cada elemento como el argumento para la devolución de llamada.

La declaración import en la parte superior del código importa el arreglo bookShelf de código adicional para que se pueda usar en el acertijo. Cada elemento en este arreglo es un object que contiene las propiedades title, author e isRead. En este acertijo, usaremos .forEach() para ejecutar funciones de devolución de llamada en el arreglo bookShelf y actualizar la propiedad isRead en cada object.

La función checkIfRead imprimirá un mensaje en la consola que incluye las propiedades title e isRead. Usaremos esta función con .forEach() para mostrar cómo la propiedad isRead es actualizada por nuestra segunda función, markAsRead(), que actualizará la propiedad a true.

.forEach() se llama 3 veces debajo de las declaraciones de funciones. Para completar el acertijo, agrega .forEach(markAsRead) a la variable bookShelf que está en su propia línea de código.
Solución del código de ejemplo:

import { bookShelf } from 'grasshopper.books';

function checkIfRead(book) {
    console.log(book.title + ' has been read: ' + book.isRead);
}
function markAsRead(book) {
    book.isRead = true;
}
bookShelf.forEach(checkIfRead);
bookShelf.forEach(markAsRead);
bookShelf.forEach(checkIfRead);

Conceptos de JavaScript: métodos de arreglo, .forEach(), importaciones, declaraciones de la función
Código adicional (código oculto que se ejecuta antes del código del acertijo):

const bookShelf = [{
    title: 'Eloquent JavaScript',
    author: 'Marijn Haverbeke',
    isRead: false
},
{
    title: 'If Hemingway Wrote JavaScript',
    author: 'Angus Croll',
    isRead: false
},
{
    title: 'JavaScript for Kids',
    author: 'Nick Morgan',
    isRead: false
}
];

1 Like