我想实现一种 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 循环,因为如果我删除带有拼接的项目,数组的索引会发生变化,因此它会继续使用“错误”索引。
也许有人可以帮助我吗?