Considere o seguinte código JavaScript: var a = [1,2,3,4,5];...
Considere o seguinte código JavaScript:
var a = [1,2,3,4,5];
a.slice(0,3);
a.splice(1,1);
a.pop();
Qual o valor da variável a ao término da execução do código?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Resposta Correta: A - [1,3,4]
Vamos analisar o que cada método faz para entender por que a alternativa A é a correta:
O método slice(0,3) cria um novo array, copiando os elementos do índice 0 ao índice 2 (o índice final 3 não é incluído). No entanto, é importante notar que slice não modifica o array original, então a variável a permanece inalterada neste ponto.
Em seguida, o método splice(1,1) é chamado, e este sim modifica o array original. Ele remove 1 elemento começando no índice 1, que no caso é o número 2. Depois desta operação, o array passa a ser [1,3,4,5].
Por fim, o método pop() remove o último elemento do array, que agora é o número 5. Assim, o array é reduzido para [1,3,4], que é exatamente a resposta correta, a alternativa A.
Para resolver essa questão, é essencial conhecer os métodos de manipulação de arrays em JavaScript e entender que slice não altera o array original, enquanto splice e pop sim. Considerando essas operações, chegamos à configuração final do array, que é [1,3,4].
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Considerando que o array inicial é "[1,2,3,4,5]" e que o índice começa em zero:
a.slice(0,3);
-> Retorna uma lista com os elementos de 0 a 3 (não incluso)
-> Essa função não altera a lista original, apenas retorna uma nova lista, então não irá influenciar no código
a.splice(1,1);
-> Essa função altera a lista original
-> A partir da posição 1, remove 1 elemento
-> Sobra: [1,3,4,5]
a.pop();
-> Remove o último elemento do array
-> Sobra: [1,3,4] GAB A
---
https://www.w3schools.com/jsref/jsref_splice.asp
https://www.w3schools.com/jsref/jsref_pop.asp
https://www.w3schools.com/jsref/jsref_slice_array.asp
Aqui também Leandro Henrique
a função é tão pouco utilizada que nem o examinador sabe montar o gabarito pra ela
Tive que quebrar a cabeça um pouco para entender essa questão e conversar com alguns colegas também.
O que me gerou mais dúvida foi na variável a.slice(0,3), pois ela fatia uma string. Contudo, veja um pequeno pega: "Embora essa string criou uma substring, mas não a UTILIZOU, é a mesma coisa de só ignorar aquela linha".
Contudo, o splice mexe na string e o pop também produzindo os resultados que o colega @Leandro explicou. Espero que tenha ajudado
"Se eu cheguei mais longe foi porque me apoiei ombros gigantes" - Isaac Newton
>>Em frente e enfrente>>
✅Gabarito(C)
Pelo que vi...
1 - Sintaxe - slice(start, stop). Sendo que o stop seria (stop -1)
2 - Assim, "a.slice(0,3)" teria como resultado [1,2,3,4];
3 - "a.splice(1,1)", causaria a exclusão de um elemento, no caso da posição 1, assim o array ficaria como [1,3,4]
4 - Finalizando, o "a.pop()", excluiria o último elemento, obtendo como resultado o array [1,3]
Fontes: https://ricardo-reis.medium.com/array-slice-80ce126d9a4d
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo