如何在Angular6中为ngx datatable列编写自定义排序方法?

如何在Angular6中为ngx datatable列编写自定义排序方法?,angular,sorting,datatable,angular6,ngx-datatable,Angular,Sorting,Datatable,Angular6,Ngx Datatable,我在Angular6项目中定义了一个ngx数据表,如下所示,我需要在表中按以下顺序对国家进行排序 代码- 我可以按如下字母顺序排列列 [sorts]="[{prop: 'country'}" 但是我需要按照上面的顺序对它们进行排序。行按此顺序排列(英国>美国>俄罗斯) 请帮助我排序或使用ngx数据库中的自定义比较器。谢谢 示例代码在中,您可以创建如下自定义比较器函数 order = ['England', 'America', 'Russia']; this.rows.sort((pro

我在Angular6项目中定义了一个ngx数据表,如下所示,我需要在表中按以下顺序对国家进行排序

代码-

我可以按如下字母顺序排列列

[sorts]="[{prop: 'country'}"
但是我需要按照上面的顺序对它们进行排序。行按此顺序排列(英国>美国>俄罗斯)

请帮助我排序或使用ngx数据库中的自定义比较器。谢谢


示例代码在

中,您可以创建如下自定义比较器函数

  order = ['England', 'America', 'Russia'];

this.rows.sort((propA, propB) => {
       let indexA = this.order.indexOf(propA.country);
       let indexB = this.order.indexOf(propB.country);

       if (indexA > indexB) {

          return 1;
        } else if (indexA < indexB) {

          return -1;
        }

      return 0;
    });
order=[‘英国’、‘美国’、‘俄罗斯’];
this.rows.sort((propA,propB)=>{
设indexA=this.order.indexOf(propA.country);
设indexB=this.order.indexOf(propB.country);
如果(indexA>indexB){
返回1;
}否则如果(indexA
这是演示-
希望这有帮助

这种排序叫什么?这里似乎与排序无关。这不是所谓的排序,而是您希望如何显示数据。您需要为此定制逻辑或任何东西。@SurjeetBhadauriya按上述顺序而不是按字母顺序对列进行排序。如果是带有数字的列,则很容易排序。但我需要根据特定的值对其进行排序。@SurjeetBhadauriya是。.排序的意思是,按上述顺序显示行。您可以尝试在StackBlitz上创建一个演示程序吗?首先,使用与country相同的自定义排序函数对其进行排序,而不是country,检查名称,排序后,再调用另一个与country相同的排序函数。您可以使用向函数传递属性名的选项来泛化排序函数。
[sorts]="[{prop: 'country'}"
  order = ['England', 'America', 'Russia'];

this.rows.sort((propA, propB) => {
       let indexA = this.order.indexOf(propA.country);
       let indexB = this.order.indexOf(propB.country);

       if (indexA > indexB) {

          return 1;
        } else if (indexA < indexB) {

          return -1;
        }

      return 0;
    });