Вы можете использовать свойство score
, которое перебирает весь список и сортирует элементы. 1 является наиболее релевантным, 0 считается не соответствующим, и элемент исключается. Зная это, мы можем написать нашу собственную функцию:)
Функция счета вызывается каждый раз, когда вводится новый символ. Внутренняя функция Score затем проверяет каждый элемент, вот его структура.
item = {
text: 'Armband',
value: 'Armband',
}
Зная это, мы берем item.text
, сделаем все буквы строчными (удалите .toLowerCase()
, если вы этого не хотите) и сравните его со значением search
(также строчными) . Когда item.text
начинается со значения в search
, возвращается 1 - элемент должен быть включен - иначе 0 и элемент исключается из списка. Вот вся функция для score
.
score: function(search) {
var score = this.getScoreFunction(search);
return function(item) {
return item.text
.toLowerCase()
.startsWith(search.toLowerCase()) ? 1 : 0;
};
},
Ниже приведен рабочий пример, чтобы увидеть его в действии.