Jquery在自动完成中实现了这个排序方法
Jquery implement this sort method in autocomplete
我有这个自动完成机场名称的小提琴。
问题-排序
我发现这个问题解决了这个问题,但我不能在我的场景中实现。不是专业的!
快速预览问题-
var source = ['Adam', 'Benjamin', 'Matt', 'Michael', 'Sam', 'Tim'];
$("input").autocomplete({
source: function (request, response) {
var term = $.ui.autocomplete.escapeRegex(request.term)
, startsWithMatcher = new RegExp("^" + term, "i")
, startsWith = $.grep(source, function(value) {
return startsWithMatcher.test(value.label || value.value || value);
})
, containsMatcher = new RegExp(term, "i")
, contains = $.grep(source, function (value) {
return $.inArray(value, startsWith) < 0 &&
containsMatcher.test(value.label || value.value || value);
});
response(startsWith.concat(contains));
}
});
我只是试着调整源,但那不起作用。
而且,实际的机场列表包含超过35000个名字,所以这种搜索方法有效吗?以及二进制搜索在哪里以及如何填充。
如果您只需要按字母顺序对结果进行排序,则在响应函数参数中使用sort方法,如下所示:
$.each(source, function(i, airportItem){
if (airportItem.iata.toLowerCase().indexOf(searchTerm) !== -1 || airportItem.name.toLowerCase().indexOf(searchTerm) === 0)
ret.push(airportItem.name + ' - ' + airportItem.iata);
});
response(ret.sort());
下面是一个修改后的小提琴来说明:http://jsfiddle.net/xxww6/
相关文章:
- Javascript从关联数组中查找最低数字(气泡排序方法)
- 如何在从排序方法调用参数时将其传递给回调
- 使用javascript中的排序方法对数组进行排序
- 自动排序方法以附加功能
- 排序方法和索引
- 我的排序方法(AJAX,PHP&MySQL)出了什么问题
- 与compareFunction一起使用的排序方法背后的逻辑是什么
- Javascript的原生排序方法是如何工作的
- 数组排序方法内部的作用域
- 排序方法为什么差返回
- 如何传递到该数组中对象的数组访问属性的排序方法的函数
- datatables colReorder排序方法与数组从变量
- JavaScript -内部的JavaScript排序方法对数字数据进行排序- True或False
- Jquery在自动完成中实现了这个排序方法
- 我认为我'm有一个自定义排序方法的范围问题
- 我不明白排序方法在这种情况下是如何工作的,我认为它是按字母顺序工作的,但是 #39;光线里的字不是,为什么
- Javascript原生排序方法代码
- 一种不同形式的排序方法
- 是否有任何 JavaScript 库实现了瑞典语等字母表的排序方法
- java script排序方法在IE8上不工作