js中文汉字按拼音排序 localeCompare()

拼音排序:

    var array = ['武汉','北京','beijing','上海','六安','妈妈','天津','wj','务必','武警','午安','魅族','没了','没有','小米','乐视'];
    var resultArray = array.sort((a,b)=>{
            return a.localeCompare(b,"zh");
        }
    );
    console.log(JSON.stringify(resultArray));

输出:

["北京","乐视","六安","妈妈","没了","没有","魅族","上海","天津","午安","武汉","武警","务必","小米","beijing","wj"]

知识点:

localeCompare() 用本地特定的顺序来比较两个字符串。

语法:

stringObject.localeCompare(target)

返回值

说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

引申

localCompare()可以再传一个参数指定语言。

'阿三'.localeCompare('王五','zh')

做了一个中文排序,是引入拼音库,把汉字先转成拼音再排序。

原文地址:https://www.cnblogs.com/liangtao999/p/14734417.html