sort pipe
by Huy Le
JavaScript
// Not complex enough.
import { Injectable, Pipe, PipeTransform } from "@angular/core";
@Pipe({ name: `sort` })
@Injectable
export class SortPipe implements PipeTransform {
transform<T>(value:Array<T> = [], targetProperty:string = ""): Array<T> {
if (!targetProperty) {
return value.sort();
}
return value.sort(sortComplex(targetProperty));
}
}
function sortComplex(property) {
return function (a, b) {
if (a[property] < b[property]) {
return -1;
}
if (a[property] > b[property]) {
return 1;
}
return 0
}
}