kir*_*gan 58 javascript sorting autocomplete function
我使用atocomplete.jquery插件来建议输入文本,结果我得到这个数组:
['White 023','White','White flower', 'Teatr']
Run Code Online (Sandbox Code Playgroud)
当我开始搜索从"te"子串开始的东西时,它向我显示如下的数组排序:
'White','White 023','White flower', 'Teatr'
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西:
'Teatr','White','White 023','White flower'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
eri*_*ckb 70
可能是插件区分大小写.尝试输入Te而不是te.您可以将结果设置为不区分大小写.这个问题可能有所帮助
对于a上的自定义排序函数Array,您可以使用任何JavaScript函数并将其作为参数传递给这样Array的sort()方法:
var array = ['White 023', 'White', 'White flower', 'Teatr'];
array.sort(function(x, y) {
if (x < y) {
return -1;
}
if (x > y) {
return 1;
}
return 0;
});
// Teatr White White 023 White flower
document.write(array);Run Code Online (Sandbox Code Playgroud)
Lio*_*rom 20
为了Objects试试这个:
function sortBy(field) {
return function(a, b) {
if (a[field] > b[field]) {
return -1;
} else if (a[field] < b[field]) {
return 1;
}
return 0;
};
}
Run Code Online (Sandbox Code Playgroud)
小智 5
或更短
sortBy(field){
return (a[field] > b[field]) - (a[field] < b[field])
}
Run Code Online (Sandbox Code Playgroud)