Como inverter um array sem modificar o original em JS

Neste artigo você vai aprender a como inverter um array sem modificar o original utilizando a linguagem JavaScript e seus recursos

inverter um array sem modificar o original capa

Fala programador(a), beleza? Bora aprender mais sobre arrays em JavaScript!

Vamos utilizar uma estratégia interessante para resolver este problema

O método reverse acaba afetando o array original, mesmo que utilizando numa atribuição de nova variável

Então em conjunto deste, que faz exatamente o que precisamos, podemos criar a cópia com o método slice

Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Isso gera uma lista invertida, sem afetar a orignal

Veja um exemplo de código:

const list = [1, 2, 3, 4, 5]

const invertedList = list.slice().reverse()

console.log(list) // [1, 2, 3, 4, 5]

console.log(invertedList) // [5, 4, 3, 2, 1]

Veja que temos duas variáveis:

  • list: nosso array original;
  • invertedList: nossa lista invertida, utilizando a estratégia de slice e reverse;

Agora basta você adaptar para os nomes das variávieis que deseja utilizar

E também aplicar as suas operações o array gerado invertido e também o array original

Deixe um comentário contando o que achou deste artigo 🙂

Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:

Conclusão

No artigo de hoje você aprendeu a como inverter um array sem modificar o original em JavaScript

Para criar a cópia do array original utilizamos slice, sem colocar parâmetros, isso nos entrega o array total

Pois slice também é utilizado para extrair elementos

Por fim, utilizamos o reverse que inverte o array e assim temos o resultado final

Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Outra forma: usando o spread operator

Ele espalha os itens do array original dentro de um array novo, e aí o reverse trabalha em cima da cópia, não no original

Os dois jeitos entregam a lista invertida sem mexer no original, escolhe o que ficar mais natural pra ti

Por que o reverse() altera o array original?

O reverse() inverte a ordem no próprio array, ali mesmo, sem gerar uma cópia

Em inglês chamam isso de método in-place: ele modifica quem chamou

Por isso, mesmo que você jogue o resultado numa variável nova, o array de origem também vem invertido junto

É justamente por isso que a gente cria uma cópia antes (com slice ou spread) e só então chama o reverse

Perguntas frequentes

O slice() sem parâmetro copia o array inteiro?

Sim, chamando slice() sem nenhum parâmetro ele devolve uma cópia com todos os elementos, e é essa cópia que a gente inverte

Qual a diferença entre slice() e spread para copiar?

Os dois criam um novo array com os mesmos itens, então pra esse caso o resultado é o mesmo, fica a gosto do freguês

O reverse() sozinho serve se eu não me importar com o original?

Serve, se você não precisa mais do array na ordem de origem, pode chamar o reverse direto, sem cópia nenhuma

Leia também

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares