Bookworm pt-br Explainer

Explicação de Rato de biblioteca

Objetivo do desafio: Usar o método de array .forEach() para atualizar a propriedade de cada item em uma array.

Passo a passo da solução: O método de array .forEach() toma uma função como argumento (também conhecido como função retorno de chamada) e faz a iteração através de uma array usando cada elemento como argumento para o retorno de chamada.

O comando de importação na parte superior do código importa a array bookShelf do código adicional para que possa ser usada no desafio. Cada item dessa array é um objeto que contém as propriedades title, author e isRead. Neste desafio, vamos usar .forEach() para executar funções retorno de chamada na array bookShelf e atualizar a propriedade isRead em cada objeto.

A função checkIfRead imprimirá uma mensagem para o console que inclui as propriedades title e isRead. Usaremos esta função com .forEach() para mostrar como a propriedade isRead é atualizada por nossa 2ª função, markAsRead(), que atualizará a propriedade para true.

.forEach() é chamado 3 vezes abaixo das declarações de função. Para concluir o desafio, adicione .forEach(markAsRead) à variável bookShelf que está em sua própria linha de código.

Solução do código de exemplo:

(Toque abaixo para revelar)

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);

Conceitos de JavaScript: Métodos de array, .forEach(), Importações, Declarações de função
Código Adicional (código oculto executado antes do código do desafio):

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
}
];