Comparare oggetti in Javascript
Praticamente abbiamo un array di oggetti di questo tipo, e vogliamo fare una comparazione per nome (ad esempio):
const arrObj = [
{nome: 'paola', eta: 33},
{nome: 'gina', eta: 40},
{nome: 'franceso', eta: 31},
];
Javascript ci mette a disposizione il metodo sort, al quale volendo possiamo passare una funzione di comparazione custom.
Facendo un esempio basico, il tutto potrebbe essere questo:
const arrObj = [
{nome: 'paola', eta: 33},
{nome: 'gina', eta: 40},
{nome: 'franceso', eta: 31},
];
function compare(obj1, obj2) {
const nome1 = obj1.nome.toUpperCase();
const nome2 = obj2.nome.toUpperCase();
var result = 0;
if (nome1 > nome2) {
result = 1;
} else if (nome1 < nome2) {
result = -1;
}
return result;
}
console.log(arrObj.sort(compare));
Ovviamente la funzione compare è abbastanza statica, in quanto decidiamo a priori cosa comparare.
Quindi come esecizio potreste migliorarla, e passargli sia cosa comparare, che come compararlo (ascendente o discendente).
Enjoy!
javascript sort
Commentami!