首頁  >  問答  >  主體

javascript - js 怎麼按照字母順序排列人名

現在要對人員列表,按照字母順序排序,後台目前沒有此功能,要求前台寫,求指點.謝謝!!

滿天的星座滿天的星座2712 天前1215

全部回覆(6)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:43:37

    sort() 方法用于对数组的元素进行排序。arrayObject.sort(sortby)

    直接用數組的 sort() 方法就可以,預設規則是按字母順序對數組中的元素進行排序。

    回覆
    0
  • 迷茫

    迷茫2017-05-19 10:43:37

    人員清單放進數組中,用array.sort(),就是根據字母排序的
    可參考:https://developer.mozilla.org...

    回覆
    0
  • 阿神

    阿神2017-05-19 10:43:37

    var arr = ['ac','ab','bb','bc','aa'];
    arr.sort();
    // ["aa", "ab", "ac", "bb", "bc"]

    數組預設排序就是字典序。如果人員是中文,那麼需要先將中文轉成拼音,在進行排序。

    轉拼音方法網上搜下就有。程式碼普遍較長,我不貼了。

    回覆
    0
  • 黄舟

    黄舟2017-05-19 10:43:37

    說清楚點,是都是中文,還是有英文名字,然後如果有英文名字,是中文混排還是分開排?

    簡單點,github上找個中文轉拼音的庫,把姓氏轉為拼音然後取首字母進行排序。

    回覆
    0
  • 迷茫

    迷茫2017-05-19 10:43:37

    雷雷

    回覆
    0
  • 阿神

    阿神2017-05-19 10:43:37

    建議擷取名字首字母存放到要排序的陣列裡面;
    然後使用sort進行排序。

    至於樓上提供的代碼是有問題的;

    console.log(['王', '啊','小','发','大哥'].sort((a, b) => a.localeCompare(b)));
    // -> 发 啊 大哥 小 王

    正常的情況下,應該是輸出: 啊 大哥 發....

    回覆
    0
  • 取消回覆