Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Bom dia, uma dúvida sobre a ordem dos valores da Array na aula 'Alterando com Splice()'

Olá, tudo bem? Primeiramente, estou achando o curso ótimo, a didática do professor é excelente e este curso já merece uma nota 10.

Segundamente, no desafio dele, FELIZMENTE os valores da Array 'Ana, Caio' estavam em ordem sequencial e por isso ele conseguiu usar splice.

Agora, e se Ana tivesse no começo da array e Caio no final, como ele usaria splice para removê-los?

Porque na minha anotação eu escrevi que a função splice o primeiro parâmetro é o índice do que quer remover (no caso, Ana era índice 1) e o segundo parâmetro era quantidade dos itens que quer remover (aí que entra o pulo do gato, Caio era o próximo item da lista e portanto eu escrevi 2 no código, removendo assim Ana e o subsequente Caio).

E por fim, sobre a função splice - posso usar o quarto parâmetro da Array em diante para continuar acrescentando itens como se fosse a função push? Ex:

const animais = ['Vaca', 'Cavalo', 'Boi', 'Sapo', 'Cachorro', 'Gato'];

animais.splice(2, 3, 'Aranha', 'Javali', 'Ovelha');

console.log(animais)

Essa função removeria o 'Boi'? O '3' em diante removeria o quê exatamente? É o 'Sapo' ou 'Sapo, Cachorro e Gato'? E posso usá-la para adicionar 'Aranha, Javali, Ovelha' na função splice?

Desculpa tantas dúvidas!

2 respostas
solução!

Oi, Diego! Tudo bem?

É muito gratificante saber que você está gostando do curso e achando a didática do professor excelente, muito obrigada pelo feedback!

Em relação à sua primeira dúvida o splice() funciona com o primeiro índice apontando a posição do array em que a modificação deve começar, de forma que caso o número seja negativo, será indicado um índice a partir do final do array. Somado a isso, o segundo índice define a quantidade de elementos a serem removidos a partir do índice inicial especificado.

Dessa forma, se Ana estivesse no começo da array e Caio no final, poderiamos usar o splice da seguinte forma para removê-los:

const nomes = ['Ana', 'Fulano', 'Beltrano', 'Caio'];
nomes.splice(0, 1); // Remove 'Ana'
nomes.splice(nomes.length - 1, 1); // Remove 'Caio'

Podemos notar que no primeiro splice, usamos o índice 0 para remover o primeiro elemento, que é 'Ana' e no segundo splice, usamos nomes.length - 1 para acessar o último índice da array e remover o último elemento, que é 'Caio'.

Em relação à sua segunda dúvida, a função splice pode ser usada para remover elementos e adicionar novos elementos em uma única operação. A sintaxe geral do splice() é a seguinte:

array.splice(start, deleteCount, item1, item2, ...)

Em que, item1, item2, ... são os elementos opcionais que serão adicionados ao array no lugar dos elementos removidos. Se nenhum elemento for especificado nesse parâmetro, apenas os elementos serão removidos e nenhum novo elemento será adicionado.

De acordo com o exemplo fornecido na sua pergunta, o índice '2' indica que vamos começar a remover elementos a partir do índice 2 (que é 'Boi'), e o '3' indica que vamos remover três elementos a partir desse índice ('Boi', 'Sapo' e 'Cachorro'). Portanto, esses três elementos serão removidos e substituídos por 'Aranha', 'Javali' e 'Ovelha'.

O resultado impresso no console.log será:

['Vaca', 'Cavalo', 'Aranha', 'Javali', 'Ovelha', 'Gato'].

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Obrigadão Sarah! Você foi incrível!