以角度7排序数据

时间:2019-06-27 07:55:48

标签: angular sorting multilingual translate

我需要按角度对标签进行排序。我正在从component.ts文件中执行此操作。排序工作正常。它负责标签的键值进行排序。但是我的应用程序使用两种语言。因此,当我切换到其他语言时,无法使用键对它进行排序。有没有办法我可以用任何语言对其进行排序

getlabel(Id: string): Observable<Dto[]> {
return this.httpClient
  .get(
    url
  )
  .pipe(
    map((data: any) => {
      data.sort((a, b) => {
        return a.label > b.label ? 1 : -1
      })
      return data
    })

  ) as Observable
}

3 个答案:

答案 0 :(得分:2)

使用localeCompare函数:

.pipe(
    map((data: any) => {
      return data.sort((a, b) => {
        return a.label.localeCompare(b.label, 'he');
      })
    })
  ) as Observable

“他”是希伯来语,将其更改为您的language code

  

Stackblitz DEMO

答案 1 :(得分:0)

这适用于用不同语言进行排序

3495

6735

9994

9999

答案 2 :(得分:0)

传递输入数组中存在的键。

function sortByKey(array: [], key: any, sortType = '') {
  if (!array.length) {
     return array;
  }

   return array.sort((a, b) => {
     if (sortType === 'desc') {
          if (b[key] < a[key]) { return -1; }
          if (b[key] > a[key]) { return 1; }
      } else {
          if (a[key] < b[key]) { return -1; }
          if (a[key] > b[key]) { return 1; }
      }

      return 0;
  });
}