Ich versuche, ein Array von Zeichenfolgen durch numerischen Wert in Angular2 mit einem benutzerdefinierten Rohr zu sortieren (Ich habe dieses Rohr nicht geschrieben). Hier ist das Rohr:Angular2 numerische orderBy Rohr
import { Pipe, PipeTransform } from "@angular/core";
@Pipe({ name: 'numericalSort' })
export class NumericalSortPipe implements PipeTransform {
transform(array: Array<any>, orderField: string, orderType: boolean): Array<string> {
array.sort((a: any, b: any) => {
let ae = a[ orderField ];
let be = b[ orderField ];
if (ae == undefined && be == undefined) return 0;
if (ae == undefined && be != undefined) return orderType ? 1 : -1;
if (ae != undefined && be == undefined) return orderType ? -1 : 1;
if (ae == be) return 0;
return orderType ? (ae.toString().toLowerCase() > be.toString().toLowerCase() ? -1 : 1) : (be.toString().toLowerCase() > ae.toString().toLowerCase() ? -1 : 1);
});
return array;
}
}
Hier ist das Objekt. Ich muss in der Lage sein, numerisch nach "label" zu sortieren. Hier
{
"id" : "12345678",
"accountId" : "123456789",
"label" : "906",
"fullAddress" : {
"zip" : "12345"
}
}
ist HTML-Beispiel:
<div *ngFor="let place of places | numericalSort: 'label'">
<h3>
{{place.label}}
</h3>
...
</div>
Ich bin in der Lage durch die Standardwerte alphabetisch zu sortieren. Wie kann ich nach Zahlenwerten sortieren?
Es wäre großartig, wenn Sie die Beispieleingabearray, orderfield liefern könnten und Auftragsart –
Array alphanumerical ist und Sie wünschen, Zahlen und Buchstaben bestellen? – Vega
Ich habe den Beitrag mit Beispielobjekt und HTML aktualisiert. – bk819284