我正在尝试从array.sort调用共享比较器函数来对2个不同的数组进行排序。
如果我有:
projects.sort(
function(a, b){
var x = a.name.toLowerCase();
var y = b.name.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});
和
products.sort(
function(a, b){
var x = a.name.toLowerCase();
var y = b.name.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});
我该怎么做?
projects.sort(sortArray());
products.sort(sortArray());
答案 0 :(得分:3)
创建一个命名函数:
function compare(a, b){
var x = a.name.toLowerCase();
var y = b.name.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
}
然后,您可以在调用sort
时引用此函数:
projects.sort(compare);
products.sort(compare);
答案 1 :(得分:0)
function sortItems(a,b) {
var x = a.name.toLowerCase(),
y = b.name.toLowerCase()
return x.localeCompare(y);
}
// Then use this
projects.sort(sortItems);
products.sort(sortItems);