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

A data retorna o mês certo sem o map

Estou recebendo um erro no console ao usar o método map: Invalid Date

Sem o método map, eu recebo a data correta, o mês não está errado. E sem o split o dia que é mostrado é o dia anterior.

class NegociacaoController {

    constructor() {
        let $ = document.querySelector.bind(document);

        this._inputData = $('#data');
        this._inputQuantidade = $('#quantidade');
        this._inputValor = $('#valor');
    }

    adiciona(event) {
        event.preventDefault();

        let data = new Date(
            this._inputData.value.split('-').map(function(item, indice) {
                    return item - indice % 2;
            })
        );


        console.log(data);

    }

}
5 respostas
solução!

Fala ai Lucas, tudo bem? Acho que faltou você passar cada item do array para a posição da função new Date, para fazer isso, adicione ... no retorno do .map:

let data = new Date(
    ...this._inputData.value.split('-').map(function(item, indice) {
        return item - indice % 2;
    })
);

Espero ter ajudado.

Deu certo, obrigado!

Magina, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.

Eu tive o mesmo resultado do Lucas. O chorme sem o map já mostra a data corretamente, apenas utilizando o split().

Neste caso é necessário fazer alguma alteração?

Fala ai Juliano, não entendi muito bem, como está o formato da data? O split é necessário para passar cada item do array como um parâmetro diferente para a função new Date.

Caso o seu código esteja funcionando corretamente, show de bola, do contrário acho que vai precisar fazer o split sim.

Precisa dar uma olhada para entender melhor.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software