Olá, Reverton!
Entendo a sua dúvida. O método map
realmente cria um novo array com base em um array existente. No entanto, no exemplo que você mostrou, o método ...livro
é usado para fazer uma cópia de cada objeto livro
do array original antes de fazer a alteração no preço.
Essa cópia é feita usando o operador spread (...
). Ele permite que você crie uma cópia de um objeto ou array existente. No caso do exemplo, o ...livro
cria uma cópia de todas as propriedades do objeto livro
e, em seguida, é feita a alteração no preço dessa cópia.
Dessa forma, o array original não é modificado e um novo array é retornado com os preços dos livros alterados. Isso é útil quando você precisa preservar o array original e criar um novo array com as alterações desejadas. Se quiser saber mais sobre esse operador eu recomendo que você leia a documentação aqui neste link.
Espero ter ajudado e bons estudos!