Я хочу реализовать какой-то живой поиск в jQuery.
Но перед отправкой ввода на сервер я хотел бы удалить все элементы в моем массиве, которые имеют 3 или менее символа (потому что на немецком языке эти слова обычно можно игнорировать с точки зрения поиска)
Итак, ["this", "is", "a", "test"]
становится ["this", "test"]
$(document).ready(function() {
var timer, searchInput;
$('#searchFAQ').keyup(function() {
clearTimeout(timer);
timer = setTimeout(function() {
searchInput = $('#searchFAQ').val().match(/\w+/g);
if(searchInput) {
for (var elem in searchInput) {
if (searchInput[elem].length < 4) {
//remove those entries
searchInput.splice(elem, 1);
}
}
$('#output').text(searchInput);
//ajax call here
}
}, 500);
});
});
Теперь моя проблема заключается в том, что не все элементы удаляются в цикле for. Если я, например, тип "это тест", то "удаляется", "a" остается. JSFIDDLE
Я думаю, что проблема заключается в цикле for, потому что индексы массива меняются, если я удаляю элемент со сплайсированием, поэтому он продолжается с "неправильным" индексом.
Возможно, кто-нибудь может мне помочь?