Comment trier un tableau d'objets dans TypeScript?
Plus précisément, triez les objets du tableau sur un attribut spécifique, dans ce cas, nome
("nom") ou cognome
("nom de famille")?
/* Object Class*/
export class Test{
nome:String;
cognome:String;
}
/* Generic Component.ts*/
tests:Test[];
test1:Test;
test2:Test;
this.test1.nome='Andrea';
this.test2.nome='Marizo';
this.test1.cognome='Rossi';
this.test2.cognome='Verdi';
this.tests.Push(this.test2);
this.tests.Push(this.test1);
tHX!
Cela dépend de ce que vous voulez trier. Vous avez la norme sort function pour Array s en JavaScript et vous pouvez écrire des conditions complexes dédiées à vos objets. f.e
var sortedArray: Test[] = unsortedArray.sort((obj1, obj2) => {
if (obj1.cognome > obj2.cognome) {
return 1;
}
if (obj1.cognome < obj2.cognome) {
return -1;
}
return 0;
});
this.tests.sort(t1,t2)=>(t1:Test,t2:Test) => {
if (t1.nome > t2.nome) {
return 1;
}
if (t1.nome < t2.nome) {
return -1;
}
return 0;
}
avez-vous essayé ça comme ça?
const sorted = unsortedArray.sort((t1, t2) => {
const name1 = t1.name.toLowerCase();
const name2 = t2.name.toLowerCase();
if (name1 > name2) { return 1; }
if (name1 < name2) { return -1; }
return 0;
});
[{nome:'abc'}, {nome:'stu'}, {nome:'cde'}].sort(function(a, b) {
if (a.nome < b.nome)
return -1;
if (a.nome > b.nome)
return 1;
return 0;
});