我想传递来自函数的数据数组进行排序。 例如:
const DEFAULT_COMPETITORS = [ 'Seamless/Grubhub', 'test'];
DEFAULT_COMPETITORS.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});
上述工作正常。但是我想要来自函数而不是DEFAULT_COMPETITORS
const的数据。我要像下面这样:
我的数据来自getAllCompetitors
,而不是常量。
function getAllCompetitors() {
$.ajax({
url: '/salescrm/getTopCompetitorsList',
type: 'POST',
success: function(data) {
console.log('getAllCompetitors data: ',data);
response(data);
},
error: function(data) {
console.log('data error: ',data);
}
});
}
getAllCompetitors.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});
希望你们有..能帮我吗
预先感谢
答案 0 :(得分:1)
我希望这会起作用
function getAllCompetitors() {
return $.ajax({
url: '/salescrm/getTopCompetitorsList',
type: 'POST',
});
}
getAllCompetitors()
.then(res => {
// you can sort the data
let sortedData = res.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});
console.log("sortedData once ajax call made the success",sortedData)
})
.fail(err= > console.log(err))
答案 1 :(得分:0)
这是一个简单的例子:
在任何数组上,您都可以使用funcion .sort()根据默认排序规则进行排序,或者将.sort与函数配合使用以使用您在方法中提供的自定义排序规则
默认排序:
var items = ['baa', 'aaa', 'aba',"Caa"];
var sortedItems = items.sort();
console.log(sortedItems);
自定义排序:
var items = ['baa', 'aaa', 'aba','Caa'];
var sortedItems = items.sort(function(item1,item2){
// Locale text case insensitive compare
return item1.toLowerCase().localeCompare(item2.toLowerCase());
});
console.log(sortedItems);