function pySegSort(arr) {
if (!String.prototype.localeCompare) return null;
let letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ#".split("");
let zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split("");
let segs = [];
letters.map((letter, i) => {
// 首字母为字母的
let cur = { letter: letter, data: [] };
arr.forEach((item) => {
const isLetter = /^[a-zA-Z]/.test(item.name.charAt(0));
const isChine = /^[\u4e00-\u9fa5]+$/.test(item.name.charAt(0));
if (isLetter && item.name.charAt(0).toUpperCase() === letter) {
// 是英文
cur.data.push(item);
} else {
if (
!isLetter &&
item.name.localeCompare(zh[i]) >= 0 &&
item.name.localeCompare(zh[i + 1]) < 0
) {
cur.data.push(item);
} else if (!isLetter && !isChine && letter == "#") {
// 不是中文也不是英文填充到#里
cur.data.push(item);
}
}
});
if (cur.data.length) {
cur.data.sort(function (a, b) {
return a.name.localeCompare(b.name, "zh");
});
segs.push(cur);
}
return cur;
});
console.log(segs);
return segs;
}
let arr1 = [
{
"code": "YTO",
"name": "圆通"
},
{
"code": "JH_999",
"name": "zzz"
}
]
pySegSort(arr1);
数据按照中文或英文字母进行A-Z排序
最新推荐文章于 2024-06-13 14:23:28 发布