Удалить элементы из массива с соединением для цикла
Я хочу реализовать своего рода живой поиск 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. Если я например наберу "Это тест" "является" удаляется, "а" остается.JSFIDDLE
Я думаю, что проблема в цикле for, потому что индексы массива меняются, если я удаляю элемент со сращиванием, поэтому он продолжается с "неправильно" индекс.
Может быть, кто-нибудь может мне помочь?