0
角度4 - カスタムパイプを使用して配列のバージョン番号文字列を並べ替える方法は?Angular 2カスタムパイプでバージョン番号を並べ替える方法は?
バージョン番号がv.9.1、v.9.2、v10.0のjsonファイルがあります。私はカスタムパイプを使ってソートを試みましたが、v.10.0、v.9.2、v.9.1ではなく、v.9.2、v.9.1、v.10.0としてソートされました。文字列として扱われているようです。ここで
は、私はパイプにしようとしたものです: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;
}
}
申し訳ありませんが、私のコードで動作しませんでした。私はこのようなjsonファイルからデータを抽出しています - –
@farialmahmud私のサンプルにjsonファイルを追加しましたhttps://plnkr.co/edit/zqpkih1AaRAgySyklOrZ?p=previewそこに再現できますか? – yurzui
[ { "バージョン": "v.9.1"、 "日付": "2016年8月11日"、 "リンク": "9-1/setup.zip" }、{ 「バージョン":" v9.0 "、 " date ":" 05/08/2016 "、 " link ":" 9-0/setup.zip " }、 { " version ":" v8.1 " 、 "日付": "2015年2月11日"、 "リンク": "8-1/setup.zip" }、 { "バージョン": "v9.2の"、 "日付": "20/03/2017"、 "link": "9-2/setup.zip" }、{ "バージョン": "V10.0"、 "日付": "20/03/2017"、 "リンク": "10.0/setup.zip" } ] –