如何对Angular 2自定义管道中的版本号进行排序?
角度4-如何使用自定义管道对数组中的版本号字符串进行排序 我有一个版本号为v.9.1、v.9.2、v10.0的json文件。我尝试使用自定义管道进行排序,但排序为v.9.2、v.9.1、v.10.0,而不是v.10.0、v.9.2、v.9.1。所以它看起来像是被当作字符串处理的 以下是我在管道中尝试的内容:如何对Angular 2自定义管道中的版本号进行排序?,angular,sorting,angular2-custom-pipes,Angular,Sorting,Angular2 Custom Pipes,角度4-如何使用自定义管道对数组中的版本号字符串进行排序 我有一个版本号为v.9.1、v.9.2、v10.0的json文件。我尝试使用自定义管道进行排序,但排序为v.9.2、v.9.1、v.10.0,而不是v.10.0、v.9.2、v.9.1。所以它看起来像是被当作字符串处理的 以下是我在管道中尝试的内容: import {Injectable, PipeTransform, Pipe} from '@angular/core'; import { P11dComponent } from '.
import {Injectable, PipeTransform, Pipe} from '@angular/core';
import { P11dComponent } from './p11d.component';
@Pipe({
name: 'sortByVersion'
})
@Injectable()
export class SortVersionPipe implements PipeTransform{
transform(array: Array<any>, args: string): Array<any> {
if (array !== undefined) {
array.sort((a: any, b: any) => {
if ( parseFloat(a[args.slice(3,4)]) < parseFloat(b[args.slice(3.4)]) ){
return 1;
} else if ( parseFloat(a[args.slice(3,4)]) < parseFloat(b[args.slice(3.4)]) ) {
return -1;
} else {
return 0;
}
});
}
return array;
}
}
从'@angular/core'导入{Injectable,PipeTransform,Pipe};
从“./p11d.component”导入{P11dComponent};
@烟斗({
名称:“sortByVersion”
})
@可注射()
导出类SortVersionPipe实现PipeTransform{
转换(数组:数组,参数:字符串):数组{
if(数组!==未定义){
array.sort((a:any,b:any)=>{
if(parseFloat(a[args.slice(3,4)])
如果我们有如下数组:
arr=['v.9.1','v.9.2','v.10.0']
然后,transform
方法可以如下所示:
变换(数组:数组
注意:对于已经修饰了@Component
、@NgModule
、@Directive
或@Pipe
decorator的类,不需要使用@Injectable
。对不起,它在我的代码中不起作用。我正在从一个json文件中提取数据,就像这样-@farialmahmud我在我的示例中添加了json文件你能在那里复制吗?[{“版本”:“v.9.1”,“日期”:“08/11/2016”,“链接”:“9-1/setup.zip”},{“版本”:“v.9.0”,“日期”:“05/08/2016”,“链接”:“9-0/setup.zip”},{“版本”:“v8.1”,“日期”:“02/11/2015”,“链接”:“8-1/setup.zip”},{“版本”:“v9.2”,“日期”:“2017年3月20日”,“链接”:“9-2/setup.zip”},{“版本”:“v10.0”,“日期”:“2017年3月20日”,“链接”:“10.0/setup.zip”}]我通过接口在组件中获取此数据-导出接口IsometLink{version:string;date:date;link:string;}用于如下查看此内容{{someLink.version}我还需要对版本号进行排序,如v4.0.0.10、v4.0.0.15、v4.0.0.40等,我的排序如下。发布可能会发现它很有用。导出类SortVerPipe实现了PipeTransform{transform(数组:数组,args:string):数组{if(数组!==未定义){array.sort((a:any,b:any)=>{if(a.versionb.verision){return-1;}else{return 0;}}}}返回数组;}