0Pricing
JavaScript Academy · Aula

E2 — Analisador de registros (filtros e contadores simples)

Analise um array em memória de linhas de registro, filtre por nível ou palavra-chave e conte eventos com Map. Mantenha tudo pequeno e legível

E2 — Analisador de registros (filtros e contadores simples) é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

O que será criado

Objetivo: Analisar registros na memória.

  • Representar linhas como pequenas cadeias de caracteres
  • Filtrar por nível ou palavra-chave
  • Contar com um Map
  • Manter as funções curtas e claras
E2 — Analisador de registros (filtros e contadores simples) — ilustração 1

Dados + analisador

Crie uma estrutura simples para cada linha: hora, nível e texto. Isso é suficiente para filtros e contadores.

// Simulated log lines (time level message)
const LINES = [
  "10:00 INFO  Start app",
  "10:01 WARN  Low memory",
  "10:02 INFO  User login /home",
  "10:03 ERROR DB timeout",
  "10:04 INFO  User login /products",
  "10:05 ERROR Network fail",
  "10:06 WARN  Retry request"
];

// Tiny parser: returns { time, level, text }
function parseLine(line) {
  // split on spaces, compact, then rebuild pieces
  const parts = line.trim().split(/\\s+/);
  if (parts.length < 3) return null;
  const time = parts[0];
  const level = parts[1];
  const text = parts.slice(2).join(" ");
  return { time: time, level: level, text: text };
}

console.log("parsed:", parseLine(LINES[2]));
E2 — Analisador de registros (filtros e contadores simples) — ilustração 2

Fundamentos da filtragem

Escreva pequenas funções de filtro para cada pergunta comum. Código curto e legível é melhor que código engenhoso.

// Filter by level or by keyword (case-sensitive for simplicity)
function filterByLevel(lines, want) {
  const out = [];
  for (const line of lines) {
    const p = parseLine(line);
    if (p && p.level === want) out.push(p);
  }
  return out;
}

function filterByKeyword(lines, word) {
  const out = [];
  for (const line of lines) {
    const p = parseLine(line);
    if (p && p.text.indexOf(word) !== -1) out.push(p);
  }
  return out;
}

console.log("ERRORs:", filterByLevel(LINES, "ERROR").length);
console.log("login :", filterByKeyword(LINES, "login").length);
E2 — Analisador de registros (filtros e contadores simples) — ilustração 3

Contadores com Map

Use um Map para os contadores: atualizações rápidas e leituras fáceis por chave.

// Count how many lines per level
function countByLevel(lines) {
  const counts = new Map();
  for (const line of lines) {
    const p = parseLine(line);
    if (!p) continue;
    const old = counts.get(p.level) || 0;
    counts.set(p.level, old + 1);
  }
  return counts;
}

const c = countByLevel(LINES);
console.log("INFO :", c.get("INFO"));
console.log("WARN :", c.get("WARN"));
console.log("ERROR:", c.get("ERROR"));
E2 — Analisador de registros (filtros e contadores simples) — ilustração 4

Exemplo dos principais N

Faça uma pequena extração de cadeias de caracteres e classifique usando um Map de contagens. Mantenha as regras de análise simples.

// Extract a path after "User login " and rank by frequency
function topLoginPaths(lines, k) {
  const freq = new Map();
  for (const line of lines) {
    const p = parseLine(line);
    if (!p) continue;
    const mark = "User login ";
    const idx = p.text.indexOf(mark);
    if (idx !== -1) {
      const path = p.text.slice(idx + mark.length).trim();
      const old = freq.get(path) || 0;
      freq.set(path, old + 1);
    }
  }
  // turn into array and sort descending by count
  const arr = Array.from(freq.entries());
  arr.sort(function (a, b) { return b[1] - a[1]; });
  return arr.slice(0, k);
}

console.log("top paths:", topLoginPaths(LINES, 3));
E2 — Analisador de registros (filtros e contadores simples) — ilustração 5

Orientações para iniciantes

Dicas:

  • Primeiro, crie um pequeno analisador.
  • Escreva pequenos auxiliares de filtro para cada pergunta.
  • Conte com um Map.
  • Prefira cadeias de caracteres simples e laços claros para iniciantes.
E2 — Analisador de registros (filtros e contadores simples) — ilustração 6

Questionário sobre contagem com Map

Verificação rápida: estrutura de contagem.

E2 — Analisador de registros (filtros e contadores simples) — ilustração 7

Recapitulação

Recapitulação: Analise cada registro em uma estrutura pequena, filtre por nível/palavra-chave e conte com um Map. Mantenha cada auxiliar curto e evidente.

E2 — Analisador de registros (filtros e contadores simples) — ilustração 8

Perguntas Frequentes

A aula “E2 — Analisador de registros (filtros e contadores simples)” é grátis?

Sim — o texto completo de “E2 — Analisador de registros (filtros e contadores simples)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “E2 — Analisador de registros (filtros e contadores simples)”?

Analise um array em memória de linhas de registro, filtre por nível ou palavra-chave e conte eventos com Map. Mantenha tudo pequeno e legível Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.

Quanto tempo leva a aula “E2 — Analisador de registros (filtros e contadores simples)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)
  2. E2 — Analisador de registros (filtros e contadores simples)
  3. E3 — Pool/fila de Promises (concorrência assíncrona)
← Voltar para JavaScript Academy