Arrays

Usando Array.fill para criar um Array

O método fill() é uma ferramenta muito útil quando precisamos criar um array com valores pré-definidos. Vamos entender como ele funciona passo a passo.

Primeiro, vamos pensar em um exemplo prático: imagine que você está desenvolvendo um sistema de notas escolares e precisa criar um array para armazenar 10 notas de um aluno. No início, quando ainda não temos as notas, queremos que todas as posições comecem com zero.

Existem duas maneiras principais de usar o fill(). Vamos ver a primeira, que é mais direta e prática:

// Primeira forma: Criar e preencher o array de uma vez
let notas = Array(10).fill(0);
console.log(notas); // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Neste código, estamos fazendo duas coisas:

  1. Array(10) cria um array com 10 posições
  2. .fill(0) preenche todas essas posições com o valor 0

Se imprimirmos notas no console, veremos: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

A segunda forma é mais flexível, mas um pouco mais verbosa:

// Segunda forma - criando o array primeiro e depois preenchendo
let notas = [,,,,,,,,,,]; // Array com 10 posições vazias
notas.fill(0);

O método fill() também oferece um recurso interessante: podemos especificar onde queremos começar e terminar o preenchimento. Por exemplo:

let notas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
notas.fill(0, 0, 3); // Preenche com 0 do índice 0 até o índice 2
// Resultado: [0, 0, 0, 4, 5, 6, 7, 8, 9, 10]

Aqui, os parâmetros são:

  • Primeiro parâmetro (0): o valor que queremos inserir
  • Segundo parâmetro (0): índice inicial (inclusive)
  • Terceiro parâmetro (3): índice final (exclusive)

É importante notar que o fill() sempre sobrescreve os valores existentes no intervalo especificado. Esta característica pode ser muito útil quando precisamos resetar parte de um array ou inicializar valores em posições específicas.

A primeira forma que vimos (Array(10).fill(0)) é geralmente a mais recomendada quando queremos criar um novo array com valores iniciais idênticos, pois é mais clara e direta. É particularmente útil em situações como:

  • Inicialização de contadores
  • Criação de arrays de pontuação
  • Preparação de estruturas de dados que precisam começar com um valor padrão