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

DUVIDA Ordenação ordem alfabética

Entendi o motivo de usar o -1, 0 e 1 só não entendi o que é analisado no "maior que". quando é acessado para a comparação ele "pega" duas opções (por exemplo) nome:Amy e nome: Oralle certo? mas o que é usado para comparação? O tamanho do nome? Um código de onde é guardado a memória?

const clientes = require("./clientes.json")

function ordenar(lista, propriedade){
    const resultado = lista.sort((a, b) => {
        if (a[propriedade] < b[propriedade]){
            return -1;
        }
        if (a[propriedade] > b[propriedade]){
            return 1;
        }
        return 0;
    } )
    return resultado
}
const ordenaNome = ordenar(clientes, "nome")
console.log(ordenaNome)```
2 respostas
solução!

Oi, Augusto, tudo bem?

Quando você usa sort() com uma função de comparação personalizada, como no seu exemplo, você está definindo a lógica de como os elementos da lista serão comparados entre si para ordenação.

No caso do seu código, a comparação é feita entre os valores da propriedade que você passou como argumento para a função ordenar(). No exemplo que você deu, a propriedade é "nome". Portanto, a comparação é feita entre os nomes dos objetos na lista de clientes.

O operador "maior que" (>) e "menor que" (<) nesse contexto estão comparando as strings dos nomes dos clientes em ordem alfabética. Em JavaScript, quando você compara duas strings com esses operadores, a linguagem compara os valores Unicode dos caracteres na string. Portanto, não é o tamanho do nome nem um código de onde é guardado na memória que é usado para a comparação, mas sim a ordem alfabética dos nomes.

Por exemplo, se tivermos duas strings, "Amy" e "Oralle", a comparação a[propriedade] < b[propriedade] retornará true, porque "Amy" vem antes de "Oralle" em ordem alfabética, ou seja, o valor Unicode de "Amy" é menor que o de "Oralle". Nesse caso, a função sort() colocará "Amy" antes de "Oralle" na lista ordenada.

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Entendi, muito obrigado