Как отсортировать результаты в отфильтрованном раскрывающемся списке в amphtml? - PullRequest
1 голос
/ 29 мая 2019

У меня есть форма бронирования авиабилетов, содержащая типичные страны «От» и «До». Список стран, загруженных из конечной точки JSON в следующем формате:

airportList": [
  {
    "countryName": "Finland",
    "airportName": "Helsinki Vantaa",
    "airportCode": "HEL",
    "cityName": "Helsinki",
    "countryCode": "FI",
    "cityCode": "HEL"
  },
  {...},
  {...}
]

Когда я ввожу «sin», например, в поле «От», я фильтрую JSON и показываю предложенные значения в раскрывающемся списке. JSON фильтруется с использованием нескольких ключей в JSON, включая countryName, airportName, cityName и airportCode.

Есть ли способ сортировки по приоритету показанных результатов? Например. если я ищу «грех», я хочу сначала увидеть список городов перед списком названий аэропортов, содержащим этот термин.

Используемая логика фильтрации тока:

<input type="text" [value]="formValues.fromAirport" value="" 
on="input-debounced:AMP.setState({location:{sourceItems:airports.airportList.filter(x=> (!event.value 
|| x.cityName.toLowerCase().indexOf((event.value||'').toLowerCase()) > -1 
|| x.airportName.toLowerCase().indexOf((event.value||'').toLowerCase()) > -1 
|| x.countryName.toLowerCase().indexOf((event.value||'').toLowerCase()) > -1 
|| x.airportCode.toLowerCase().indexOf((event.value||'').toLowerCase()) > -1 )) }})">
...