Movie Marathon pt-br Explainer

Explicação de Maratona de filmes

Objetivo deste desafio: Usar o método de array .forEach() para alterar o valor de cada item dela.

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

A primeira linha de código importa uma array de objetos de código adicional, movieQueue, para que possa ser usado neste desafio. Cada objeto em movieQueue tem uma propriedade title e uma propriedade hasWatched. A propriedade hasWatched de cada item é falsa.

Em seguida, a função checkIfSeen é declarada. Ela pega um argumento, movie e imprime suas propriedades title e hasWatched no console. Essa função é usada como retorno de chamada em dois métodos .forEach(), mais tarde em nosso código.

Abaixo da função checkIfSeen, a função markAsWatched é declarada. Ela pega um argumento, movie e define sua propriedade hasWatched como verdadeira. Usaremos essa função como argumento para um método .forEach() que acrescentaremos ao nosso código.

Neste desafio, você usará o método .forEach() e a função markAsWatched para mudar a propriedade hasWatched dos itens em movieQueue de falso para verdadeiro.

Para concluir o desafio, adicione o método .forEach(markAsWatched) após o movieQueue que está sozinho em sua própria linha. Agora, todas as propriedades hasWatched dos itens em movieQueue serão verdadeiras. Os métodos anteriores e posteriores .forEach(checkIfSeen) nos permitem ver que a propriedade hasWatched de cada item mudou de falsa para verdadeira.

Solução do código de exemplo:

(Toque abaixo para revelar)

import { movieQueue } from 'grasshopper.movies';

function checkIfSeen(movie) {
  console.log('Watched ' + movie.title + ': ' + movie.hasWatched);
}

function markAsWatched(movie) {
  movie.hasWatched = true;
}

movieQueue.forEach(checkIfSeen);
movieQueue.forEach(markAsWatched);
movieQueue.forEach(checkIfSeen);

Conceitos de JavaScript: Métodos de array, .filter(), Objetos, Declarações de funções, Importações

Código Adicional (código oculto executado antes do código do desafio):

const movieQueue = [{
    title: 'HopGun',
    hasWatched: false
},
{
    title: 'Hoppy Gilmore',
    hasWatched: false
},
{
    title: 'Mission Im-hop-ible',
    hasWatched: false
}
];