Сортировка дочерних узлов дерева по угловым - PullRequest
0 голосов
/ 20 февраля 2019

У меня угловое древовидное представление с узлами улица, город, штат, страна.

Штат является дочерним узлом страны, город является дочерним узлом штата и так далее.Кроме того, каждый узел имеет своих соответствующих дочерних элементов.

Например: Германия, Франция, Швеция, Норвегия - это значения в страновом узле.Нажатие на Германию покажет такие государства, как Берлин, Бавария, Саар, и дальнейший выбор Баварии покажет города в Баварии, а затем выбор города покажет его улицу.

Однако я не могуотсортировать список стран, штатов, городов и улиц.

Имя хранится в переменной с именем label.Я использовал следующее для сортировки массива.:

  getNames(id: string): Observable<Name[]> {

return this.httpClient
  .get(
    this.environmentService.endpoints.<<--insert url here-->
  )
  .pipe(
    map((data: any) => {
      data.sort((a, b) => {
          return a.Name > b.Name ? 1 : -1

      })
      return data
    })
  ) as Observable<Name[]>
 }

Я использовал аналогичный вид для дерева

Он переставляет, но не сортирует по алфавиту.

Есть ли способ сортировки моего объекта по алфавиту?

PS: я хочу отсортировать его в сервисе, а затем отправить его компоненту

1 Ответ

0 голосов
/ 20 февраля 2019

Можете ли вы показать больше кода о том, как вы сортируете?вам не нужно использовать карту каналов, поскольку массивы имеют собственную функцию сортировки.

sortFn(myArray: Array<any>, label: string) {
   return myArray.sort((a, b) => {
    if (a[label] < b[label]) return -1;
    if (a[label] > b[label]) return 1;
    return 0;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...