Em JavaScript, um vetor é uma estrutura semelhante a uma lista, sem comprimento fixo, que pode conter qualquer tipo de primitivos ou objetos, até tipos mistos.
Para criar um array, adiciona elementos entre parênteses retos [].
Para ler a partir do array, coloca o índice entre parênteses retos [] depois do identificador.
Os índices de um array começam em zero.
Por exemplo:
const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3
Para obter o número de elementos que existem num array, usa a propriedade length:
const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4
Para alterar um elemento do array, atribuis um valor no índice:
const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']
Alguns dos métodos disponíveis em todos os objetos Array podem ser usados para adicionar ou remover elementos do array. Aqui ficam alguns que podes ter em conta quando trabalhas neste exercício:
Um value pode ser adicionado ao fim de um array usando .push(value).
O método devolve 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 devolve o valor removido.
O comprimento do array diminui por causa desta alteração.
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 devolve o valor removido.
O comprimento do array diminui por causa desta alteração.
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 devolve o novo comprimento do array.
const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']
Um value num index específico pode ser removido de um array usando .splice(index, 1).
O método devolve o(s) elemento(s) removido(s).
const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
Estes métodos são mais poderosos do que o descrito:
push como unshift permitem adicionar vários valores de uma só vez, acrescentando mais argumentos.
Isso não é necessário para completar este exercício.deleteCount.
Isto 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 futura mágica, a Elyse precisa de praticar algumas coisas básicas. Tem um baralho de cartas que quer manipular.
Para tornar as coisas um pouco mais simples, usa apenas as cartas de 1 a 10, por isso o seu baralho pode ser representado por um array de números. A posição de uma determinada carta corresponde ao índice no array. Ou seja, a posição 0 refere-se à primeira carta, a posição 1 à segunda, e assim por diante.
Todas as funções, exceto duas, devem atualizar o array de cartas e depois devolver o array modificado. É uma forma de trabalhar comum, conhecida como Builder pattern, que te permite encadear funções umas nas outras de forma elegante.
As duas exceções são getItem, que deve devolver a carta na posição indicada, e checkSizeOfStack, que deve devolver true se o tamanho indicado corresponder.
Para escolher uma carta, devolve a carta no índice position do baralho dado.
const position = 2;
getItem([1, 2, 4, 1], position);
// => 4
Faz um pouco de prestidigitação e troca a carta no índice position pela carta de substituição fornecida.
Devolve o baralho ajustado.
const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]
Faz aparecer uma carta, inserindo uma nova carta no topo do baralho. Devolve o baralho ajustado.
const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]
Faz desaparecer uma carta, removendo do baralho a carta na position indicada.
Devolve o baralho ajustado.
const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]
Faz desaparecer uma carta, removendo a carta do topo do baralho. Devolve o baralho ajustado.
removeItemFromTop([3, 2, 6, 4, 8]);
// => [3, 2, 6, 4]
Faz aparecer uma carta, inserindo uma nova carta no fundo do baralho. Devolve o baralho ajustado.
const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]
Faz desaparecer uma carta, removendo a carta do fundo do baralho. Devolve o baralho ajustado.
removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]
Verifica se o tamanho do baralho é igual a stackSize ou não.
const stackSize = 4;
checkSizeOfStack([3, 2, 6, 4, 8], stackSize);
// => false
Inscreve-te no Exercism para aprenderes e dominares JavaScript com 37 conceitos159 exercícios, e mentoria humana real, tudo grátis.