Implementando o Resumo

JavaScriptBeginner
Pratique Agora

Introdução

Neste laboratório, ambientado no agitado cenário de startups do "Vale da FinTech", você se colocará no lugar de Alex, um engenheiro de software em ascensão encarregado de aprimorar o sistema de rastreamento financeiro de uma empresa de tecnologia em rápido crescimento. A equipe financeira da empresa precisa de uma maneira dinâmica de visualizar a saúde financeira geral da organização. Seu objetivo é implementar um recurso em seu aplicativo de contabilidade baseado na web existente que calcule e exiba a receita total, as despesas totais e o saldo líquido, fornecendo informações financeiras em tempo real.

Pontos de Conhecimento:

  • Array.prototype.filter()
  • Array.prototype.reduce()
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 95%. Recebeu uma taxa de avaliações positivas de 99% dos estudantes.

Filtrar e Reduzir

Os métodos Array.prototype.filter() e Array.prototype.reduce() do JavaScript são ferramentas poderosas para manipulação de arrays, tornando o processamento de dados mais eficiente e conciso. Esses métodos são usados para filtrar elementos em um array e para acumular valores de elementos de array, respectivamente.

Filter

O método filter() cria um novo array com todos os elementos que passam no teste implementado pela função fornecida. Ele não altera o array original, mas retorna um novo array.

Sintaxe:

let result = array.filter(function (element, index, array) {
  // Condição de teste
  return true; // ou false
});
  • element: O elemento atual sendo processado no array.
  • index (opcional): O índice do elemento atual.
  • array (opcional): O array no qual filter é chamado.

Por exemplo, filtrando números maiores que 10.

let numbers = [5, 12, 8, 130, 44];
let filtered = numbers.filter(function (number) {
  return number > 10;
});
console.log(filtered); // Output: [12, 130, 44]
Exemplo de saída do método Filter

Reduce

O método reduce() executa uma função redutora (que você fornece) em cada elemento do array, resultando em um único valor de saída.

Sintaxe:

let result = array.reduce(function (
  accumulator,
  currentValue,
  currentIndex,
  array
) {
  // Retorna o resultado acumulado
  return accumulator + currentValue;
}, initialValue);
  • accumulator: Acumula os valores de retorno do callback; é o valor acumulado retornado anteriormente na última invocação do callback, ou initialValue, se fornecido.
  • currentValue: O elemento atual sendo processado no array.
  • currentIndex (opcional): O índice do elemento atual sendo processado.
  • array (opcional): O array no qual reduce foi chamado.

Por exemplo, calculando a soma de todos os números em um array.

let numbers = [5, 12, 8, 130, 44];
let total = numbers.reduce(function (accumulator, number) {
  return accumulator + number;
}, 0);
console.log(total); // Output: 199
Exemplo de saída do método Reduce

Com o uso desses dois métodos em mente, o próximo passo é calcular o total de sua receita e despesa.

✨ Verificar Solução e Praticar

Implementar a Lógica de Cálculo do Resumo

Nesta etapa, você implementará a lógica para calcular a receita total, as despesas totais e o saldo. Isso envolve adicionar funções JavaScript que iteram sobre os registros de transações, somam a receita e as despesas e calculam o saldo líquido.

Escreva o seguinte em script.js:

document.addEventListener("DOMContentLoaded", function () {
  const updateSummary = () => {
    const totalIncome = records
      .filter((record) => record.type === "income")
      .reduce((acc, record) => acc + parseFloat(record.amount), 0);
    const totalExpense = records
      .filter((record) => record.type === "expense")
      .reduce((acc, record) => acc + parseFloat(record.amount), 0);
    const balance = totalIncome - totalExpense;

    totalIncomeEl.textContent = `Total Income: ${totalIncome}`;
    totalExpenseEl.textContent = `Total Expense: ${totalExpense}`;
    balanceEl.textContent = `Balance: ${balance}`;
  };

  // Function to save records to localStorage and update the UI
  const saveRecords = () => {
    localStorage.setItem("records", JSON.stringify(records));
    renderRecords();
    updateSummary();
  };
  renderRecords();
  updateSummary();
});

Esta função JavaScript, updateSummary, calcula a receita total e as despesas a partir do array records e atualiza o saldo. Em seguida, ela atualiza o conteúdo de texto dos respectivos elementos HTML na seção de resumo.

✨ Verificar Solução e Praticar

Resumo

Neste laboratório, você embarcou em uma jornada pelo cenário financeiro de uma startup na "FinTech Valley". Você desempenhou o papel de Alex, aprimorando uma ferramenta de contabilidade baseada na web para fornecer resumos financeiros em tempo real. Ao integrar um recurso de resumo dinâmico, você permitiu que a equipe financeira obtivesse insights imediatos sobre a situação financeira da empresa, ilustrando o poder de combinar HTML, CSS e JavaScript para criar aplicações web interativas e informativas. Através desta experiência, você aprendeu a manipular o DOM usando JavaScript e aprimorou sua compreensão do desenvolvimento de aplicações do mundo real.