Bookstore es-419 Explainer

Explicador de Librería

Objetivo de este acertijo: Usar el operador de propagación (...) para copiar los elementos de un arreglo en otro arreglo.

Tutorial de la solución:

La primera línea de código en este acertijo importa 3 arreglos de código adicional, fiction, nonFiction y poetry, de modo que se pueden usar en este acertijo.

La declaración de la variable allBooks es un nuevo arreglo que usará el operador de propagación para copiar los elementos de cada uno de los 3 arreglos.

Para completar el acertijo, agrega el operador de propagación antes de nonFictionypoetry`.

¿Qué sucede si no usamos el operador de propagación?


let arrayOne = [1, 2, 3];

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

Sin el operador de propagación, todo el arrayOne está en arrayTwo[0]. O decir, arrayTwo se ve así:

[[1, 2, 3], 4, 5, 6] en lugar de [1, 2, 3, 4, 5, 6]. Esto se llama anidar. Sin el operador de propagación, arrayOne se anida dentro de arrayTwo.

Solución del código de ejemplo:


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

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

for (let book of allBooks) {

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

}

Conceptos de JavaScript: arreglos, operador de propagación

Código adicional (código oculto que se ejecuta antes del código del acertijo):


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