例如排序要去为 D,W,M,Y这种 日,周,月,年这种格式的排序要求。
采用常规的基于字典序的排序无法达成要求。
思路如下:
(1)将自定义的排序规则存入数组:
ruleArr = [D, W, M, Y];
(2)对需要比较的两个数a和b分别取出其在数组中的索引值index_a和index_b
(3)通过比较索引的大小(即index_a和index_b的大小)来确定比较结果,从而实现排序要求。
function compareExpire(a, b) {
//D W M Y
//定义排序规则
var ruleArr = ['D', 'W', 'M', 'Y'];
//查找value1 和 value2 在数组中的索引
var index_a = ruleArr.indexOf(a);
var index_b = ruleArr.indexOf(b);
//通过比较索引的大小来判断是否进行交换
if (index_a > index_b) {
return true;
} else {
return false;
}
}