JS按照开头首字母排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS按照开头首字母排序相关的知识,希望对你有一定的参考价值。

例如:AC700 , AB621 , C752B , D5657 我想按照开头的首字母排序,就是以A开头的放在一起,以B开头的放在一起,以此类推。

//1.把你要排序的字符串放到一个数组里(如下:array)
//2.然后array调用一下sort()方法就可以了
<script language="javascript">
var array = ['AC700' ,' AB621' ,' C752B ', 'D5657'];
array.sort();
</script>
参考技术A function stringSort(str) 
            if(typeof str === 'string')
                str = str.split(',');
            if (!Array.isArray(str)) 
                console.error('参数类型错误, 必须为数组或以(,)分割的字符串.')
                return str;
            
            str.sort();
            return str.join();
        
        //测试
        var test1 = ["BB000", "AB621", "C752B", "AC700", "D5657"];
        console.log(stringSort(test1));
        var test2 = "BB000,AB621,C752B,AC700,D5657";
        console.log(stringSort(test2));

参考技术B

中文(全拼/简拼)、英文混合按照首字母排序提取码:41e6

react-native按照汉字首字母排序

问题讨论详情:https://github.com/facebook/react-native/issues/12597

 

问题描述:

JS中有一个String的内置函数:String.prototype.localeCompare()返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

1 a.nickName.localeCompare(b.nickName, ‘zh-Hans-CN‘, {sensitivity: ‘accent‘})

react-native环境下,此函数的返回值在IOS上正常,在Androiddebug模式下正常,在Androidrelease模式下有误。问题原因是AndroidJavaScriptCore引擎的版本导致的问题。

 

解决方案:

推荐字典:https://github.com/sxei/pinyinjs

 

用字典先获取汉字首字母,再用localeCompare按照英文首字母排序。

示例用法:

1 require(‘../api/pinyinJs/dict/pinyin_dict_firstletter‘)
2 require(‘../api/pinyinJs/pinyinUtil‘)
3 
4 ...
5 lockData[0].sort((a, b) => {
6   return pinyinUtil.getFirstLetter(a.nickName).localeCompare(pinyinUtil.getFirstLetter(b.nickName))
7 })
8 ...

 

 

以上是关于JS按照开头首字母排序的主要内容,如果未能解决你的问题,请参考以下文章

在datatable中能把某字段按照首字母拼音顺序排列么?

react-native按照汉字首字母排序

mysql按照首字母排序

ORACLE中用某个字段的首字母排序

mysql 中将汉字按照首字母排序

sql语句-按照汉字拼音首字母排序