前端中文排序

前端排序中文,按拼音首字母排序。發現網上很多有名的網站也沒有處理好多音字問題,於是和需求討論後,不需要處理多音字了。便使用瞭如下的一個簡便方法

核心代碼

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章