Я хочу использовать трубу для сортировки имен, заканчивающихся числами.
Я использовал пользовательский канал и получаю результаты, как и ожидалось
- $ Яблочный фрукт -символ
- 1Яблочный фрукт -номер
- Яблочный фрукт - по алфавиту
Но сортировка не происходит, если имя заканчивается цифрой.
Результат сейчас:
- Яблочный фрукт3
- Яблочный фрукт01
- Яблочный фрукт5
- Яблоко fruit02
JSON
[
{"name": "Apple fruit3"},
{"name": "$Apple fruit"},
{"name": "Apple fruit"},
{"name": "Apple fruit01"},
{"name": "Apple fruit5"},
{"name": "Apple fruit02"},
]
HTML
<div *ngFor='let list of names | appOrderBy : "name" '>
<div>{{list.name}}</div>
</div>
OrderBy Custom Pipe
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'appOrderBy'
})
export class OrderBy implements PipeTransform {
transform(array: Array<string>, args: string): Array<string>{
array.sort((a: any, b: any) => {
if (a[args] < b[args]) {
return -1;
} else if (a[args] > b[args]) {
return 1;
} else {
return 0;
}
});
return array;
}
}