Arrays e Métodos Básicos em JavaScript
Estudo sobre arrays e métodos básicos em JavaScript, cobrindo manipulação de dados com push, pop, shift e unshift. Destinado a estudantes e iniciantes em programação.
Cartões · 52
- O que é um Array em JavaScript?
- É uma estrutura de dados indexada usada para armazenar múltiplos valores ordenados sob uma única variável.
- Qual é a base do índice de um array em JavaScript?
- A indexação começa em zero (zero-based); o primeiro elemento ocupa o índice 0 e o último elemento ocupa o índice length - 1.
- O que faz o método push()?
- Adiciona um ou mais elementos ao final de um array e altera o comprimento do array original.
- Qual é a sintaxe básica do método push()?
- array.push(elemento1, elemento2, ..., elementoN)
- Qual é o valor retornado pelo método push()?
- Retorna o novo comprimento (length) do array após a adição dos elementos.
- O método push() modifica o array original?
- Sim, push() é um método mutável que altera diretamente a estrutura e o tamanho do array original.
- Qual é a complexidade de tempo típica de arr.push()?
- Complexidade amortizada O(1), pois adiciona o elemento no final sem necessidade de reindexar elementos anteriores.
- Resultado de [1, 2].push(3)?
- Retorna 3 (novo length), e o array torna-se [1, 2, 3].
- O que faz o método pop()?
- Remove o último elemento de um array e diminui o seu tamanho em uma unidade.
- Qual é a sintaxe básica do método pop()?
- array.pop()
- Qual é o valor retornado pelo método pop()?
- Retorna o elemento que foi removido do final do array, ou undefined se o array estiver vazio.
- O método pop() aceita parâmetros?
- Não, pop() não recebe argumentos; ele sempre remove exclusivamente o último elemento existente.
- O método pop() modifica o array original?
- Sim, é um método mutável que altera o array original, reduzindo sua propriedade length em 1.
- Qual é a complexidade de tempo de arr.pop()?
- Complexidade O(1), pois remover o último item não exige o deslocamento dos índices existentes.
- O que acontece ao chamar [].pop() em um array vazio?
- Retorna undefined e mantém o array vazio, sem lançar erros em tempo de execução.
- Resultado de let a = ['a', 'b']; a.pop();?
- A expressão retorna 'b', e a variável 'a' passa a conter apenas ['a'].
- O que faz o método shift()?
- Remove o primeiro elemento (índice 0) de um array e desloca todos os elementos subsequentes para a esquerda.
- Qual é a sintaxe básica do método shift()?
- array.shift()
- Qual é o valor retornado pelo método shift()?
- Retorna o elemento removido da primeira posição, ou undefined caso o array esteja vazio.
- O método shift() aceita parâmetros?
- Não, shift() não recebe argumentos; ele foca estritamente na remoção do elemento no índice zero.
- O método shift() modifica o array original?
- Sim, altera o array original, reduz seu length em 1 e reindexa todos os itens restantes.
- Qual é a complexidade de tempo de arr.shift()?
- Complexidade O(n), pois todos os elementos seguintes precisam ter seus índices recalculados e deslocados.
- O que acontece ao chamar [].shift() em um array vazio?
- Retorna undefined e deixa o array inalterado com length igual a zero.
- Resultado de let n = [10, 20]; n.shift();?
- Retorna 10, e a variável 'n' passa a ter o valor [20] com length igual a 1.
- O que faz o método unshift()?
- Adiciona um ou mais elementos no início do array e desloca os elementos pré-existentes para índices maiores.
- Qual é a sintaxe básica do método unshift()?
- array.unshift(elemento1, elemento2, ..., elementoN)
- Qual é o valor retornado pelo método unshift()?
- Retorna o novo comprimento (length) do array após a inserção dos itens no início.
- O método unshift() modifica o array original?
- Sim, modifica o array original, aumentando seu length e reposicionando todos os índices existentes.
- Qual é a complexidade de tempo de arr.unshift()?
- Complexidade O(n), pois todos os itens anteriores precisam ser deslocados para dar espaço aos novos.
- Resultado de let x = [3, 4]; x.unshift(1, 2);?
- Retorna 4 (novo length), e 'x' passa a ser [1, 2, 3, 4].
- Em unshift(1, 2), qual ordem os itens assumem no array?
- São inseridos em bloco: o primeiro argumento fica no índice 0 e o segundo no índice 1 ([1, 2, ...]).
- Diferença de ordem: unshift(1, 2) vs unshift(1) e depois unshift(2)?
- unshift(1, 2) resulta em [1, 2, ...], enquanto chamadas consecutivas resultam em [2, 1, ...].
- Qual par de métodos implementa uma Pilha (Stack / LIFO)?
- push() para empilhar e pop() para desempilhar, ambos operando no final do array com O(1).
- Qual par de métodos implementa uma Fila simples (Queue / FIFO)?
- push() para enfileirar no final e shift() para desenfileirar do início.
- Por que filas com push() e shift() são ineficientes em arrays grandes?
- Porque shift() tem complexidade O(n), exigindo o deslocamento em memória de todos os elementos restantes.
- Quais dos quatro métodos operam exclusivamente no final do array?
- push() e pop().
- Quais dos quatro métodos operam exclusivamente no início do array?
- shift() e unshift().
- Quais dos quatro métodos retornam o novo tamanho (length) do array?
- push() e unshift().
- Quais dos quatro métodos retornam o elemento manipulado?
- pop() e shift().
- Todos os quatro métodos (push, pop, shift, unshift) sofrem mutação?
- Sim, todos são métodos mutáveis (in-place) e alteram o array original.
- O que acontece ao passar múltiplos argumentos para arr.pop()?
- Os argumentos são ignorados pelo motor JavaScript e apenas o último item é removido.
- O que acontece se arr.push() for chamado sem argumentos?
- Nenhum elemento é adicionado e o método apenas retorna o length atual do array inalterado.
- Como adicionar múltiplos itens de outro array usando push()?
- Utilizando o operador spread: arrayOriginal.push(...novoArray).
- Resultado de let a = [1]; a.push([2, 3]);?
- Retorna 2, e 'a' torna-se [1, [2, 3]], aninhando o segundo array como um único elemento.
- Como obter o último elemento sem removê-lo (sem pop)?
- Acessando via array[array.length - 1] ou utilizando o método array.at(-1).
- Como obter o primeiro elemento sem removê-lo (sem shift)?
- Acessando via array[0] ou utilizando o método array.at(0).
- Como unshift() se comporta com objetos semelhantes a arrays (array-like)?
- Pode ser aplicado via Function.prototype.call se o objeto possuir length e propriedades numéricas mutáveis.
- O que ocorre com índices vazios (holes em sparse arrays) com shift()?
- Os buracos são deslocados preservando a esparsidade, mantendo os índices vazios ajustados.
- Alternativa imutável para adicionar ao final (substituindo push)?
- O operador spread [...array, novoElemento] ou o método array.concat(novoElemento).
- Alternativa imutável para adicionar ao início (substituindo unshift)?
- O operador spread [novoElemento, ...array] ou novoElementoArray.concat(array).
- Alternativa imutável para remover o último item (substituindo pop)?
- array.slice(0, -1), que retorna uma nova cópia do array sem o último elemento.
- Alternativa imutável para remover o primeiro item (substituindo shift)?
- array.slice(1), que retorna uma nova cópia do array excluindo o item de índice zero.