尝试制作这个小型书店应用,并希望添加选项,按价格和名称,升序和降序对书籍进行排序。按价格排序按照非常奇怪的顺序进行排序,并且无法找到原因,如果有人可以帮助并向我解释,我在Angular中很新。谢谢!
以下是源代码:https://github.com/EgomortIncognitus/bookstore
以下是sort-by.pipe.ts的代码:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sortBy'
})
export class SortByPipe implements PipeTransform {
transform(array: Array<string>, args?: any): any {
if (array) {
let sortField = args[0];
let sortDirection = args[1];
let modifier = 1;
if (sortDirection === 'desc') {
modifier = -1;
}
array.sort((a: any, b: any) => {
if (a[sortField] < b[sortField]) {
return -1 * modifier;
} else if (a[sortField] > b[sortField]) {
return 1 * modifier;
} else {
return 0;
}
});
return array;
}
}
}
答案 0 :(得分:0)
按名称排序并按编号排序在Javascript中不相同
答案 1 :(得分:0)
您正在排序将完成lexicographically的字符串。
例如,"9" > "800000"
但9 < 800000
。