У меня есть форма бронирования авиабилетов, содержащая типичные страны «От» и «До». Список стран, загруженных из конечной точки 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 )) }})">