Javascript 如何从Bootstrap-3-Typeahead返回的结果中删除重复项?
我已经在我的项目中集成了Bootstrap3 typeahed,一切正常。问题是mysql数据库中有重复的条目,我需要读取这些属性,但不希望它们在“自动完成/建议”下拉列表中多次显示。Javascript 如何从Bootstrap-3-Typeahead返回的结果中删除重复项?,javascript,jquery,arrays,autocomplete,Javascript,Jquery,Arrays,Autocomplete,我已经在我的项目中集成了Bootstrap3 typeahed,一切正常。问题是mysql数据库中有重复的条目,我需要读取这些属性,但不希望它们在“自动完成/建议”下拉列表中多次显示。 例如,用户在显示的输入字段结果中键入“bab”: babble babble babbler 我试图达到的结果是:babblebabbler 以下是响应显示结果的代码: $.ajax({ url:"engine/searchhandler.ph
例如,用户在显示的输入字段结果中键入“bab”: babble babble babbler 我试图达到的结果是:babblebabbler 以下是响应显示结果的代码:
$.ajax({
url:"engine/searchhandler.php",
method:"POST",
data: {query:query, lang:$('#lang-pseudo').val()},
dataType:"json",
async: false,
success:function(data){
result($.map(data, function(item) {
return item;
}))
}
})
我试图以这种方式清理结果,但它似乎不起作用(日志显示空元素):
有人能帮我删除结果中的重复项吗?请使用
如果数据
包含数组:
const without dupes=[…新集合(数据)];
Set
s只能包含唯一的值。[…]
将集合
转换回数组
无设置
:
/“数据”,而不是“列表”
const without dupes=data.filter(函数(元素、索引、自){
返回索引===self.indexOf(elem);
});
WithoutDupe的类型将是一个数组?是。[…新设置(数据)]
和数组.原型.过滤器
都返回数组。这是一个很好的答案,谢谢,但是在我没有重复后,我不知道如何返回它的每个元素。你应该能够调用结果
回调,使用没有重复
:结果(没有重复)
。是的,没关系,我弄明白了,在我自己的代码中被搞糊涂了,我想需要休息一下=),再次感谢你的回答
success:function(data){
result($.map(data, function(item) {
var list = new Array();
var unique = list.filter(function(elem, index, self) {
return index == self.indexOf(elem);
})
console.log(unique);
//return item;
}))
}