André,
Então... err... fiquei na dúvida ... o que é "a.propriedade
"?
Para descobrir o que é, eu fiz o seguinte...
... pedi para fazer um "console.log" dentro da função anônima com "a.propriedade
" e com "a[propriedade]
", desta forma:
function ordenar(lista, propriedade, ordem = "crescente") {
const resultado = lista.sort((a, b) => {
console.log(a.propriedade);
console.log(a[propriedade]);
if (a.propriedade > b.propriedade) {
return 1;
} else if (a.propriedade < b.propriedade) {
return -1;
} else {
return 0;
}
});
- No caso do "
a.propriedade
" escreveu várias vezes "undefined" ... epa! Não dá para comparar isso! Mas não deu erro. - No caso do "
a[propriedade]
" escreveu os nomes corretamente. Aê sim!
Geralmente o que é colocado depois do "." (ponto) é um método.
E o que é colocado dentro dos colchetes "[]" pode ser um valor de índice da propriedade.
Leia mais em:
============================================
Definições de Método
No ECMAScript 2015 foi introduzida uma sintaxe reduzida para definição de métodos em inicializadores de objetos. É uma abreviação para uma função atribuída ao nome do método.
...
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/Method_definitions
============================================
Array - Sumário
O objeto Array do JavaScript é um objeto global usado na construção de 'arrays': objetos de alto nível semelhantes a listas.
...
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array
============================================
Assessores de propriedade
Os assessores de propriedade fornecem acesso as propriedades de um objeto usando a notação de ponto ou a notação de colchetes.
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Property_Accessors
============================================
Espero ter ajudado.
Se sua dúvida foi resolvida, não esqueça de fechar o post e se a minha resposta foi a melhor, não esqueça de me pontuar.
[]'s,
Fabio I.