Desafio JS: Criar o método .shift()
26
0

Desafio JS: Criar o método .shift()

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?

Gabriel e Pedro
3 min
26
0

👋 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👇

Seguir meu Canal

🪓 Afiando o machado

Classificação do desafio deste episódio:

  • Nível: Intermediário
  • Conteúdos JavaScript: trataremos de Arrays. Sendo mais, das funções ou prototypes de um Objeto do tipo Array.
Email image

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:

O método shift remove o elemento de índice zero, diminui em 1 os índices dos demais valores e retorna o valor removido. Se a propriedade length for 0, então undefined é retornado.

var minhaLista = ['anjo', 'casa', 'mandarim', 'medico'];
console.log('minhaLista antes: ' + minhaLista);
var shifted = minhaLista.shift();
console.log('minhaLista depois: ' + minhaLista);
console.log('Elemento removido: ' + shifted);

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!


🧑‍💻 Praticando: Instruções para o 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: 

  1. Você deverá criar uma função que recebe um array como argumento.
  2. Esse método deverá retirar o primeiro item do array fornecido e retornar o elemento que foi removido.
  3. É importante que o array fornecido seja alterado, ou seja, se consultarmos seu valor depois que a função for executada, o primeiro elemento não deverá mais existir.
  4. É importante ressaltar que não é permitido utilizar o próprio método .shift() dentro da sua função.

Para ilustrar o que está sendo requisitado, observe o seguinte exemplo:

let list = ["👩🏽‍🚀", "😱", "🚀"];
const shift = (listToBeWorked) => {
};
console.log(list);
let result = shift(list);
console.log(result);
console.log(list);

💡 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.

Compartilhar conteúdo

2. ✉️Se inscrever na nossa newsletter - se ainda não é, iremos ficar muito felizes com a sua inscrição.

Seguir meu Canal

Tenha uma boa semana,

Gabriel e Pedro 👋