Сортировать массив объектов в угловых 6 - PullRequest
0 голосов
/ 21 ноября 2018

У меня проблема с сортировкой массива объектов

Объект выглядит как

enter image description here

Все, что я хочу, это сделать* ngFor цикл сортировать его по свойству group_id.

component.html

<ul *ngFor="let list of selectgid | groupid">
  <li>{{list}}</li>
</ul>

pipe.ts

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
 name: 'groupid'
 })
export class GroupidPipe implements PipeTransform {

transform(array: Array<any>): Array<any> {
  if (array !== undefined) {
  array.sort((a: any, b: any) => {
    if (a.group_id < b.group_id) {
      return -1;
    } else if (a.group_id > b.group_id) {
      return 1;
    } else {
      return 0;
    }
  });
}
  return array;
}
}

Я пытался реализовать этот код, но, похоже, он не работает.Что не так в моем коде или что-то нужно сделать?

1 Ответ

0 голосов
/ 21 ноября 2018

Предполагая, что selectgid - это ваш массив объектов, содержащий значения, показанные на изображении, попробуйте отсортировать ваши данные внутри метода ngOnInit () в вашем файле .ts следующим образом:

this.selectgid.sort((a, b) => {
    if (a.group_id < b.group_id) {
        return -1;
    } else if (a.group_id > b.group_id) {
        return 1;
    } else {
        return 0;
    }
})

И на странице .html вынеобходимо указать ключ объекта следующим образом:

<ul *ngFor="let list of selectgid">
    <li>{{list.group_id}}</li>
    <li>{{list.permission_list}}</li>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...