前端中文排序

前端排序中文,按拼音首字母排序。发现网上很多有名的网站也没有处理好多音字问题,于是和需求讨论后,不需要处理多音字了。便使用了如下的一个简便方法

核心代码

a.localeCompare(b)

代码

获取首字母并分类:

function PYSort(source) {
  if (!String.prototype.localeCompare) return null;
  
  const letters = "*abcdefghjklmnopqrstwxyz".split(''),
    zh_cn = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split(''),
    totalList = [];
  
  for (let i = 0; i < letters.length; i++) {
    const item = {
      name: letters[i],
      list:[]
    };
    
    for (let val of source) {
      if ((!zh_cn[i-1] || zh_cn[i-1].localeCompare(val) <= 0) && val.localeCompare(zh_cn[i]) == -1) {
        item.list.push(val);
      }
    }
    
    if ( item.list.length) {
      item.list.sort(function(a,b) {
        return a.localeCompare(b);
      });
      totalList.push(item);
    }
  }
  return totalList;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章