1
resposta

Resolução

const manutencao = {
  jan: 2,
  fev: 0,
  mar: 7,
  abr: 4,
  mai: 0,
  jun: 10,
};

function relatorioManutencao(manutencao) {
  let diasManutencao = 0;
  let mesesManutencao = 0;

  for (const mes in manutencao) {
    const dias = manutencao[mes];
    diasManutencao += dias;

    if (dias > 0) {
      mesesManutencao++;
    }
  }

  console.log(`Total de dias parados: ${diasManutencao}`);
  console.log(`Meses com manutenção registrada: ${mesesManutencao}`);

  if (diasManutencao > 20) {
    console.log("Status: Atenção! Acima do limite anual.");
  } else {
    console.log("Status: Dentro do limite anual.");
  }
}

relatorioManutencao(manutencao);
1 resposta

Oi, Gabriel! Como vai?

Agradeço por compartilhar.

Gostei da forma como você organizou o objeto manutencao e percorreu cada mês com for...in, somando os dias parados e contando apenas os meses com manutenção registrada. A lógica ficou clara e o uso da condição para verificar se passou de 20 dias também está bem aplicado.

Uma dica interessante para o futuro é usar Object.values() quando você precisar trabalhar apenas com os valores de um objeto.

const dias = Object.values(manutencao);

const totalDias = dias.reduce((total, dia) => total + dia, 0);
const mesesComManutencao = dias.filter(dia => dia > 0).length;

console.log(`Total de dias parados: ${totalDias}`);
console.log(`Meses com manutencao registrada: ${mesesComManutencao}`);

Esse código pega apenas os valores do objeto, soma todos os dias com reduce() e conta os meses com valor maior que 0 usando filter(). Continue praticando, você está construindo uma boa base com objetos em JavaScript.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!