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