O método shift remove o elemento de índice zero, diminui em 1 os índices dos demais valores e retorna o valor removido. Você consegue replicar?
👋 Opa, Gabriel e Pedro aqui e seja bem-vindo para o primeiro episódio da nossa newsletter semanal, a Challenge House. Toda segunda-feira, temos um desafio JavaScript para você estudar e aprimorar os seus conhecimentos em programação.
Se você ainda não é um inscrito e quer se desafiar, não deixe de seguir a gente. A solução será enviada na sua caixa de entrada na quinta-feira👇
Classificação do desafio deste episódio:
|
|
No JavaScript, quando criamos um array, por debaixo dos panos, está sendo criado um Objeto que tem métodos para nos ajudar a lidar com listas.
Como algum desses métodos, podemos citar o .find() que retorna o primeiro item de uma lista com base em uma condição fornecida ou até métodos mais complexos, como o .reduce().
Para o desafio de hoje, iremos utilizar o método .shift(). De acordo com a definição do MDN:
/* Exemplo do MDN */
var minhaLista = ['anjo', 'casa', 'mandarim', 'medico'];
console.log('minhaLista antes: ' + minhaLista);
/* minhaList antes: ['anjo', 'casa', 'mandarim', 'medico'] */
var shifted = minhaLista.shift();
console.log('minhaLista depois: ' + minhaLista);
/* minhaList depois: ['casa', 'mandarim', 'medico'] */
console.log('Elemento removido: ' + shifted);
/* Elemento removido: anjo */Há algo de interessante e inusitado com esse método. Toda vez que o invocamos, mudamos o próprio array. Dessa forma, atualizamos o objeto pelo qual estamos interagindo, não necessitando, então, colocar na memória o valor do novo array.
O retorno do método em questão não retorna o novo array e sim o item que foi retirado daquele array.
Aqui está uma ótima oportunidade para entender como o Javascript lida com a memória ram quando se trata de objetos.
Vamos ao desafio!
Depois de ter o machado afiado com os conceitos necessários para colocar o conhecimento em prática, aqui estão as instruções que devem ser seguidas:
Para ilustrar o que está sendo requisitado, observe o seguinte exemplo:
let list = ["👩🏽🚀", "😱", "🚀"];
const shift = (listToBeWorked) => {
/* aqui vai o seu código */
};
console.log(list);
/* irá retornar: ["👩🏽🚀", "😱", "🚀"] */
let result = shift(list);
console.log(result);
/* irá retornar: "👩🏽🚀" */
console.log(list);
/* irá retornar: ["😱", "🚀"] */💡 Dica de ouro: Ao lidar com listas em JavaScript, quando esta é alterada, o seu valor também irá mudar dentro do objeto. É necessário entender que um novo objeto não será criado e que somente será alterado os seus valores na memória. A dica de ouro é entender como essa dinâmica funciona.
Boa sorte!
Se você achou o conteúdo dessa newsletter interessante, pense com carinho em fazer alguma dessas coisas:
1. ❤️ Compartilhar com os amigos - é com a sua ajuda que iremos levar o Challenge House para cada vez mais pessoas.
2. ✉️Se inscrever na nossa newsletter - se ainda não é, iremos ficar muito felizes com a sua inscrição.
Tenha uma boa semana,
Gabriel e Pedro 👋