Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quantidade de Itens em um Array

Aula 01 Atividade 9

const arrayVazia = [,,,]; console.log(arrayVazia.length)

Se executar o código acima retorna o numeral 3, porém nos colchetes eu "teoricamente" teria espaço para quatro itens: [1,2,3,4] o que eu quero dizer é que com 3 vírgula eu teria espaço reservados para colocar 4 itens.

arrayVazia.push(50) console.log(arrayVazia.length)

A terceira linha do código faz um push no array, não acrescenta mais uma vírgula, e sim um dado a mais e então o array fica com 4 posições.

Abs. Luciano

1 resposta
solução!

Oi, Luciano, tudo bem?

Muito bem pontuado! De fato, um array como [,,,] tem "espaço" para 4 elementos, mas existe um motivo para o JavaScript contar que o tamanho dele é apenas 3.

Considere o seguinte array vazio:

const arrayVazio = [];
console.log(arrayVazio.length);

O console.log irá imprimir o valor 0, pois não há nenhum elemento no array. Mas se pararmos para pensar, ele possui "espaço" para um elemento, não é? Entretanto, não faria sentido um array vazio ter comprimento 1.

Agora, vamos colocar apenas uma vírgula dentro do array e ver o que acontece:

const arrayVazio = [,];
console.log(arrayVazio.length);

Veremos o número 1 no terminal! Da mesma forma que no array anterior, este possui "espaço" para dois elementos, mas a propriedade length contabiliza seu tamanho como 1. Além disso, seria estranho se a propriedade length saltasse de 0 para 2 apenas com a adição de uma vírgula.

Agora, vamos analisar o seguinte caso:

const arrayVazio = [,10];
console.log(arrayVazio.length);

Agora, no terminal, veremos o número 2! O array continua com apenas uma vírgula, mas como adicionamos um valor depois dela, agora o javascript entende que ele tem uma posição vazia e uma posição com o número 10.

Por fim, vamos considerar mais um caso:

const arrayVazio = [,10,];
console.log(arrayVazio.length);

Com o código acima, continuaremos vendo o número 2 no terminal. Da mesma forma, um array [10,] também tem tamanho 1, assim como um array [10]. Ou seja, podemos concluir que o javascript ignora o último espaço vazio de um array para a contagem do seu tamanho (note que isso vale até mesmo para quando o último espaço vazio é o único do array). Isso faz sentido para a contagem dos tamanhos dos arrays esparsos, se consideramos desde o array de tamanho 0.

Espero ter ajudado! Abraços e bons estudos :)