Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Apenas uma solução diferente

Olá caro humano que está lendo.

Com o objetivo de implementar a função de trocar a ordem de exibição entre crescente e decrescente o instrutor resolveu criar uma variável para guardar esse dado, no entanto pensei em um jeito 'automático' de decidir em como ordenar:

//ListaNegociacoes.js

ordena(criterio) {

        const array = this.negociacoes;

        if (array[0][criterio] > array[array.length - 1][criterio]) {
            this._negociacoes.sort((a, b) => {
                return a[criterio] - b[criterio];
            })
        } else {
            this._negociacoes.sort((a, b) => {
                return b[criterio] - a[criterio];
            }) 
        } 
    }

Basicamente o código testa se o primeiro valor da lista é maior que o ultimo, caso verdadeiro ele ordena em ordem crescente, e faz o contrario caso falso. Só queria compartilhar mesmo e saber se essa solução peca em algum principio dos padrões de projeto comerciais, thnks.

1 resposta
solução!

Fala ai Lucio, tudo bem? Muito bem, parabéns pela solução.

Mas, imagine que por algum motivo apenas o primeiro e segundo item estão ordenados, os demais, não.

Isso iria impactar a função, porque coincidentemente o primeiro e segundo estavam em ordem crescente, mas, os demais não, então a função iria retornar em decrescente mas na verdade deveria ser crescente.

Com a variável o controle fica mais garantido, a gente tem certeza se tudo está ordenado ou não (uma vez que ela só deve ser setada após alguma ordenação e não ter um valor inicial).

Espero ter ajudado.