Bookstore pt-br Explainer

Explicação de Livraria

Objetivo do desafio: Usar o operador de propagação (...) para copiar os elementos de uma array para outra.

Passo a passo da solução: A 1ª linha de código neste desafio importa 3 arrays de código adicional, fiction, nonFiction e poetry, para que possam ser usados neste desafio.

A declaração de variável allBooks é uma nova array que usará o operador de propagação para copiar os elementos de cada uma das 3 arrays.

Para concluir o desafio, adicione o operador de propagação antes de nonFiction e poetry.

O que acontece se não usarmos o operador de propagação?


let arrayOne = [1, 2, 3];

let arrayTwo = [arrayOne, 4, 5, 6]

Sem o operador de propagação, tudo de arrayOne fica em arrayTwo[0]. Em outras palavras, arrayTwo fica assim:

[[1, 2, 3], 4, 5, 6] em vez de [1, 2, 3, 4, 5, 6]. Isso é chamado de aninhamento. Sem o operador de propagação, arrayOne torna-se aninhada dentro de arrayTwo.

Solução do código de exemplo:

(Toque abaixo para revelar)


import { fiction, nonFiction, poetry } from 'grasshopper.books';

let allBooks = [...fiction, ...nonFiction, ...poetry];

for (let book of allBooks) {

console.log(book.title + ' by ' + book.author);

}

Conceitos de JavaScript: Arrays, Operador de propagação,

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

const poetry= [{ title: 'Death of a Naturalist', author: 'Seamus Heaney' }, { title: 'Omeros', author: 'Derek Walcott' }];

const fiction= [{ title: 'Beloved', author: 'Toni Morrison' }, { title: 'Dubliners', author: 'James Joyce' }];

const nonFiction= [{ title: 'Down and Out in Paris and London', author: 'George Orwell' }, { title: 'A Distant Mirror', author: 'Barbara Tuchman'}];