Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Dados duplicados

Na aula 4/3 Filtrando tarefas, continua exibido produtos em duplicidades no CEEP.

data.js

export const removeDatasRepetidas = (datas) => {

    const datasUnicas = [];

    datas.forEach((data => {
        if(datasUnicas.indexOf(data.dataFormatada) === -1) {
            datasUnicas.push(data.dataFormatada)
        }
    }));

    return datasUnicas;
}

carregaTarefas.js

import { removeDatasRepetidas } from "../service/data.js";
import { criaData } from "./criaData.js";

export const carregaTarefa = () => {

    const lista = document.querySelector("[data-list]");

    const tarefasCadastradas = JSON.parse(localStorage.getItem('tarefas')) ||[];

    lista.innerHTML = " ";

    const datasUnicas = removeDatasRepetidas(tarefasCadastradas);

    datasUnicas.forEach((dia) => {
        lista.appendChild(criaData(dia))
    });
} 

criaData.js

import { Tarefa } from "./criaTarefa.js";

export const criaData = (data) => {

   const tarefas = JSON.parse(localStorage.getItem('tarefas')) ||[];

   const dataMoment = moment(data, 'DD/MM/YYYY');
   const dataTopo = document.createElement('li');
   const conteudo = `<p class="content-data">${dataMoment.format('DD/MM/YYYY')}</p>`;

   dataTopo.innerHTML = conteudo;

   tarefas.forEach((tarefa => {
      const dia = moment(tarefa.dataFormatada,'DD/MM/YYYY');

      const diff = dataMoment.diff(dia);
      if (diff === 0) {
         dataTopo.appendChild(Tarefa(tarefa));
      }
   }));

   return dataTopo;
}
6 respostas

Alguem pode ajudar!!!

Como resolver o problema da duplicidade?

Alguem pode ajudar com o problema?!!!

É serio que não tem resposta? Postei a dúvida a 6 dias atrás e até agora nenhuma resposta?

A Alura não acompanha os foruns? Poderiamos ter uma canal de suporte online, ter que ficar aguardando alguma resposta é muito complicado.

Bom dia Gustavo,

eu comparei os códigos que você escreveu com o material da aula e eles estão praticamente idênticos. A minha suspeita é que o comportamento do datasUnicas.indexOf(data.dataFormatada) === -1 possa ser indefinido em algum momento.

Sugiro tentar trocar o teste dentro do if para a seguinte forma:

export const removeDatasRepetidas = (datas) => { 

    const datasUnicas = []
    datas.forEach((data => { 
        if( !datasUnicas.includes(data.dataFormatada) ){
            datasUnicas.push(data.dataFormatada)
        }
    }))
    return datasUnicas
}

Agora eu estarei de olho nesse tópico e qualquer coisa é só mandar aqui o seu resultado. Bons estudos!

solução!

Também não deu certo. Infelizmente esse curso esta muito mal editado e explicado. Desisti de fazer.