Em JavaScript, um array, ou vetor, é uma estrutura parecida com uma lista, sem comprimento fixo, que pode armazenar qualquer tipo de primitivo ou objeto, até mesmo tipos misturados.
Para criar um array, coloque os elementos entre colchetes [].
Para ler um array, coloque o índice entre colchetes [] depois do identificador.
Os índices de um array começam em zero.
Por exemplo:
const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3
Para descobrir quantos elementos há em um array, use a propriedade length:
const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4
Para alterar um elemento do array, atribua um valor ao índice:
const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']
Alguns dos métodos disponíveis em todo objeto Array podem ser usados para adicionar ou remover elementos do array. Aqui estão alguns para considerar ao fazer este exercício:
Um value pode ser adicionado ao final de um array usando .push(value).
O método retorna o novo comprimento do array.
const numbers = [1, 'two', 3, 'four'];
numbers.push(5); // => 5
numbers;
// => [1, 'two', 3, 'four', 5]
O último value pode ser removido de um array usando .pop()
O método retorna o valor removido.
O comprimento do array vai diminuir por causa dessa mudança.
const numbers = [1, 'two', 3, 'four'];
numbers.pop(); // => four
numbers;
// => [1, 'two', 3]
O primeiro value pode ser removido de um array usando .shift()
O método retorna o valor removido.
O comprimento do array vai diminuir por causa dessa mudança.
const numbers = [1, 'two', 3, 'four'];
numbers.shift(); // => 1
numbers;
// => ['two', 3, 'four']
Um value pode ser adicionado ao início de um array usando .unshift(value).
O método retorna o novo comprimento do array.
const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']
Um value em um index específico pode ser removido de um array usando .splice(index, 1).
O método retorna o(s) elemento(s) removido(s).
const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
Esses métodos são mais poderosos do que o descrito aqui:
push quanto unshift permitem adicionar ou inserir vários valores de uma vez, passando mais argumentos.
Isso não é necessário para completar este exercício.splice pode remover vários valores aumentando o segundo argumento.
Isso não é necessário para completar este exercício.splice também pode adicionar vários valores, passando-os como argumentos depois do deleteCount.
Isso pode ser usado para substituir valores, ou inserir valores no meio de um array (por exemplo, removendo 0 elementos).
Isso não é necessário para completar este exercício.Como aspirante a mágica, Elyse precisa praticar alguns fundamentos. Ela tem uma pilha de cartas que quer manipular.
Para facilitar um pouco as coisas, ela usa apenas as cartas de 1 a 10, então a pilha de cartas dela pode ser representada por um array de números. A posição de uma carta corresponde ao índice no array. Isso significa que a posição 0 se refere à primeira carta, a posição 1 à segunda carta, e assim por diante.
Todas as funções, exceto duas, devem atualizar o array de cartas e depois retornar o array modificado. Essa é uma forma comum de trabalhar conhecida como padrão Builder, que permite encadear funções uma na outra de forma elegante.
As duas exceções são getItem, que deve retornar a carta na posição dada, e checkSizeOfStack, que deve retornar true se o tamanho dado corresponder.
Para pegar uma carta, retorne a carta no índice position da pilha dada.
const position = 2;
getItem([1, 2, 4, 1], position);
// => 4
Faça um pouco de prestidigitação e troque a carta no índice position pela carta de substituição fornecida.
Retorne a pilha ajustada.
const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]
Faça uma carta aparecer inserindo uma nova carta no topo da pilha. Retorne a pilha ajustada.
const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]
Faça uma carta desaparecer removendo a carta na position dada da pilha.
Retorne a pilha ajustada.
const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]
Faça uma carta desaparecer removendo a carta do topo da pilha. Retorne a pilha ajustada.
removeItemFromTop([3, 2, 6, 4, 8]);
// => [3, 2, 6, 4]
Faça uma carta aparecer inserindo uma nova carta na base da pilha. Retorne a pilha ajustada.
const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]
Faça uma carta desaparecer removendo a carta da base da pilha. Retorne a pilha ajustada.
removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]
Verifique se o tamanho da pilha é igual a stackSize ou não.
const stackSize = 4;
checkSizeOfStack([3, 2, 6, 4, 8], stackSize);
// => false
Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.