列举排序中的几种情况,然后逐个进行排序即可
const CHAR_CODE_a = 'a'.charCodeAt(0); // 97
const CHAR_CODE_A = 'A'.charCodeAt(0); // 65
const CHAR_CODE_z = 'z'.charCodeAt(0); // 112
const CHAR_CODE_Z = 'Z'.charCodeAt(0); // 90
const diffLowerUpper = CHAR_CODE_a - CHAR_CODE_A;
const isLower = (charCode) => {
return CHAR_CODE_a <= charCode && charCode <= CHAR_CODE_z;
};
const isUpper = (charCode) => {
return CHAR_CODE_A <= charCode && charCode <= CHAR_CODE_Z;
};
const ORDER = {
KEEP : 1,
EXCHANGE : -1,
EQUAL : 0,
}
const A1Bigger = (isAsc) => {
// 以降序的角度考虑,A1大,那么保持即可
return isAsc ? ORDER.EXCHANGE : ORDER.KEEP;
};
const A2Bigger = (isAsc) => {
// 以降序的角度考虑,A2大,那么需要跟A1交换位置
return isAsc ? ORDER.KEEP : ORDER.EXCHANGE;
};
/**
* 比较 A2 字符串与 A1