InstruçÔes

Passo 12

O mĂ©todo splice() pode modificar arrays adicionando ou removendo elementos em qualquer posição, inclusive no meio. Como splice() retorna um array contendo os elementos removidos, vocĂȘ pode usĂĄ-lo para trocar dois elementos em um array sem modificar o original. Isso pode ser feito em uma linha usando a seguinte tĂ©cnica:
// swap elements at i and j without mutating the original
const copy = array.slice();
copy[i] = copy.splice(j, 1, copy[i])[0];
Aqui estĂĄ um exemplo:
const originalArray = [12, 97, 68, 55];
const copyArray = originalArray.slice();
copyArray[1] = copyArray.splice(3, 1, copyArray[1])[0];
console.log(copyArray); // [12, 55, 68, 97]
A técnica, aplicada na terceira line, funciona da seguinte forma:
  • splice(3, 1, copyArray[1]) remove o elemento no Ă­ndice 3 (55)
  • Insere o elemento de copyArray[1] (97) no Ă­ndice 3
  • splice() retorna [55], um array contendo o elemento removido
  • [0] extrai 55 desse array
  • Esse valor (55) Ă© atribuĂ­do de volta a copyArray[1], completando a troca
Use esta técnica com o updatedCrew array para trocar os astronautas em fromIndex e toIndex.

O que fazer:

Testes:

  • VocĂȘ deve realizar a troca fazendo uma chamada ao `splice()` method.
  • VocĂȘ deve fazer uma chamada a `splice()` com o array `updatedCrew` para realizar a troca. VocĂȘ deve usar a tĂ©cnica de uma linha.
  • Sua `swapCrewMembers` função nĂŁo deve modificar o `crew` array de entrada original.

Console