function compareErrado(a, b) {
return a < b;
}
// se a é menor que b, retorna um número negativo
// se a é maior que b, retorna um número positivo
// se forem iguais, retorna zero
function compareCerto(a, b) {
return a - b;
}
// errado, não muda a ordem das datas
console.log([new Date('2021-01-10'), new Date('2020-01-10'), new Date('2022-01-10')].sort(compareErrado));
// certo, ficam em ordem crescente
console.log([new Date('2021-01-10'), new Date('2020-01-10'), new Date('2022-01-10')].sort(compareCerto));
ZnVuY3Rpb24gY29tcGFyZUVycmFkbyhhLCBiKSB7CiAgICByZXR1cm4gYSA8IGI7Cn0KCi8vIHNlIGEgw6kgbWVub3IgcXVlIGIsIHJldG9ybmEgdW0gbsO6bWVybyBuZWdhdGl2bwovLyBzZSBhIMOpIG1haW9yIHF1ZSBiLCByZXRvcm5hIHVtIG7Dum1lcm8gcG9zaXRpdm8KLy8gc2UgZm9yZW0gaWd1YWlzLCByZXRvcm5hIHplcm8KZnVuY3Rpb24gY29tcGFyZUNlcnRvKGEsIGIpIHsKICAgIHJldHVybiBhIC0gYjsKfQoKLy8gZXJyYWRvLCBuw6NvIG11ZGEgYSBvcmRlbSBkYXMgZGF0YXMKY29uc29sZS5sb2coW25ldyBEYXRlKCcyMDIxLTAxLTEwJyksIG5ldyBEYXRlKCcyMDIwLTAxLTEwJyksIG5ldyBEYXRlKCcyMDIyLTAxLTEwJyldLnNvcnQoY29tcGFyZUVycmFkbykpOwoKLy8gY2VydG8sIGZpY2FtIGVtIG9yZGVtIGNyZXNjZW50ZQpjb25zb2xlLmxvZyhbbmV3IERhdGUoJzIwMjEtMDEtMTAnKSwgbmV3IERhdGUoJzIwMjAtMDEtMTAnKSwgbmV3IERhdGUoJzIwMjItMDEtMTAnKV0uc29ydChjb21wYXJlQ2VydG8pKTsK