Я работаю над проектом на курсе ReactJS, и у меня возник вопрос.Я хочу искать результаты и фильтровать на основе НАЧАЛА слов, а не только строки, присутствующей где-либо в результате.
Например, в списке контактов ввод "r" может вернуть R ichard, Aa r on и Ba r ba r a, потому что все они содержат "r".Как мне сделать так, чтобы он отфильтровывал с начала слова и далее, как в словаре?
В настоящее время я фильтрую результаты из массива, используя управляемый компонент для динамического поиска и фильтрации результатов.Вот соответствующий фрагмент на данный момент:
filterResults = (venueFilter) => {
let filteredVenues = this.state.venues
filteredVenues = filteredVenues.filter((venue) => {
let venueData = venue.name.toLowerCase();
return venueData.indexOf(venueFilter.toLowerCase()) !== -1
})
this.setState({
filteredVenues
})
}
Проект вызывает рестораны рядом со мной.Но затем, набрав «r», вы узнаете много вещей, так как это обычное письмо, и потому что «ресторан» начинается с R. Ввод «М» вызывает и японский ресторан « M ИКАДО» (полезно / хорошо).UX), но также возвращает «Sia m Thai» и «Stadt m auer» (не особенно полезный / плохой UX).
Что я могу сделать, чтобы отфильтровать начало слова?