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上正常,在Android的debug模式下正常,在Android的release模式下有误。问题原因是Android的JavaScriptCore引擎的版本导致的问题。
解决方案:
推荐字典: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按照开头首字母排序的主要内容,如果未能解决你的问题,请参考以下文章