当前位置:网站首页>JS according to the Chinese Alphabet (province) or according to the English alphabet - Za sort &az sort
JS according to the Chinese Alphabet (province) or according to the English alphabet - Za sort &az sort
2022-07-06 21:09:00 【viceen】
js Sort according to the first letter of Chinese characters ( Province sorting ) or Sort according to English initials ——z~a Sort & a~z Sort
Example 1
let arr = [" Guizhou Province ", " Jiangsu Province ", " Jiangxi Province ", " Zhejiang Province ", " Sichuan Province ", " Anhui Province ", " Shandong Province ", " Shanghai ", " Hubei province ", " Fujian Province ", " Liaoning Province ", " Shanxi Province ", " Hebei Province ", " Qinghai Province ",
" Heilongjiang Province ", " Inner Mongolia Autonomous Region ", " Beijing ", " Henan province ", " Hunan province ", " Guangdong province, ", " Shaanxi Province ", " Jilin Province ", " Yunnan Province ", " Xinjiang Uygur Autonomous Region ",
" Chongqing ", " tianjin ", " Gansu Province ", " Ningxia Hui Autonomous Region ", " Hainan ", " Guangxi Zhuang Autonomous Region ", " Tibet Autonomous Region "];
let sortArray = arr.sort(function (str1, str2) {
return str1.localeCompare(str2, 'zh');
});
Print the results
[' Anhui Province ', ' Beijing ', ' Chongqing ', ' Fujian Province ', ' Gansu Province ', ' Guangdong province, ', ' Guangxi Zhuang Autonomous Region ', ' Guizhou Province ', ' Hainan ', ' Hebei Province ', ' Henan province ', ' Heilongjiang Province ', ' Hubei province ', ' Hunan province ', ' Jilin Province ', ' Jiangsu Province ', ' Jiangxi Province ', ' Liaoning Province ', ' Inner Mongolia Autonomous Region ', ' Ningxia Hui Autonomous Region ', ' Qinghai Province ', ' Shandong Province ', ' Shanxi Province ', ' Shaanxi Province ', ' Shanghai ', ' Sichuan Province ', ' tianjin ', ' Tibet Autonomous Region ', ' Xinjiang Uygur Autonomous Region ', ' Yunnan Province ', ' Zhejiang Province ']
Example 2
Realize the sorting of Chinese according to the first letter of Pinyin
js Provides sort() Method to sort the data in the array , But it only works for English , At this time, you need to customize the sorting rules
[' Zhang San ',' Li Si ',' Wang Wu '].sort((a, b) => a.localeCompare(b, 'zh-Hans-CN', {
sensitivity: 'accent'}))
Output
[' Li Si ',' Wang Wu ',' Zhang San ']
- sort() It defines a function to specify the sorting rules ,localeCompare() Method returns a number , Indicates whether the reference string is before or after the sort order , Or the same as the given string in the sort order ,
zh-Hans-CN
Is the sorting rule of simplified Chinese ,sensotivity
Is sensitivity , Includebase
、accent
、case
、variant
These sensitivities
example 1- Pure array
var array = [' wuhan ', ' Beijing ', ' Shanghai ', ' tianjin '];
var resultArray = array.sort(
function compareFunction(param1, param2) {
return param1.localeCompare(param2,"zh");
}
);
console.log(resultArray);
example 2- Array objects
// Data to sort
let data = [
{
chinese: ' zeiss ', english: 'Chase'},
{
chinese: ' Allen ', english: 'Allen'},
{
chinese: ' Zola ', english: 'Zola'},
{
chinese: ' Baker, ', english: 'Baker'},
{
chinese: ' Berg ', english: 'Berg'},
{
chinese: ' Fitch ', english: 'Fitch'},
{
chinese: ' Dean ', english: 'Dean'},
{
chinese: ' Earl ', english: 'Earle'},
{
chinese: ' Henry ', english: 'Henry'},
]
// Sort according to the first letter of Chinese characters
// Use the arrow function
//【 notes 】localeCompare() yes js Built-in methods
data.sort((a, b)=> b.chinese.localeCompare(a.chinese, 'zh')); //z~a Sort
data.sort((a, b)=> a.chinese.localeCompare(b.chinese, 'zh')); //a~z Sort
console.log(data);
// Sort according to English Compare The first letter ASCLL code
console.log(data[0].english.charCodeAt(0));
ata.sort((a, b) => b.english.charCodeAt(0) - a.english.charCodeAt(0)); //z~a Sort
data.sort((a, b) => a.english.charCodeAt(0) - b.english.charCodeAt(0)); //a~z Sort
console.log(data);
attach :localeCompare() Method
js Provides a string comparison method localeCompare(), This method returns a number to indicate that a reference string and a comparison string are sorted first , After or the same . This method is basically not used alone , Most of the time it is used with string sorting .
grammar
stringObject.localeCompare(target)
Return value
Figures that illustrate the results of the comparison .
- If stringObject Less than target, be localeCompare() Back to less than 0 Number of numbers .
- If stringObject Greater than target, The method returns greater than 0 Number of numbers .
- If two strings are equal , Or according to the local collation , This method returns 0.
Method call
1、 Separate calls to methods : Simply compare two strings , Just check the return value .
var str = 'aaa',
strCom = 'bbb',
strCom2 = 'aaa';
str.localeCompare(strCom); //-1
strCom.localeCompare(str); //1
str.localeCompare(strCom2); //0
2、 With the call of sorting : This method is rarely used to compare strings alone , In most cases, it is used in conjunction with the sorting of strings .
ar strList = ['cc', 'ee', 'ca', 'aa'];
strList.sort((a, b) => {
return a.localeCompare(b);
});
console.log(strList); //["aa", "ca", "cc", "ee"]
explain
hold < and > When the operator is applied to a string , They only use characters Unicode Encoding comparison string , Regardless of local sorting rules . The order generated in this way is not necessarily correct . for example , In Spanish , Which character “ch” Usually appears as a letter “c” and “d” Sort by characters between .
localeCompare() Method to compare strings , Consider the default local collation .ECMAscript The standard does not specify how to make local specific comparisons , It only stipulates that the function adopts the sorting rules provided by the underlying operating system .
from z~a
// Sort according to the first letter of Chinese characters
// Use the arrow function
//【 notes 】localeCompare() yes js Built-in methods
data.sort((a, b)=> b.chinese.localeCompare(a.chinese, 'zh')); //z~a Sort
from a~z
data.sort((a, b)=> a.chinese.localeCompare(b.chinese, 'zh')); //a~z Sort
According to the English initials ASCLL Code to sort
from z~a
// Sort according to English Compare The first letter ASCLL code
// Use the arrow function
data.sort((a, b) => b.english.charCodeAt(0) - a.english.charCodeAt(0)); //z~a Sort
from a~z
data.sort((a, b) => a.english.charCodeAt(0) - b.english.charCodeAt(0)); //a~z Sort
边栏推荐
- PHP online examination system version 4.0 source code computer + mobile terminal
- Reference frame generation based on deep learning
- 1500萬員工輕松管理,雲原生數據庫GaussDB讓HR辦公更高效
- 1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效
- 面试官:Redis中有序集合的内部实现方式是什么?
- Select data Column subset in table R [duplicate] - select subset of columns in data table R [duplicate]
- What are RDB and AOF
- Pat 1078 hashing (25 points) ⼆ times ⽅ exploration method
- 【Redis设计与实现】第一部分 :Redis数据结构和对象 总结
- 【微信小程序】運行機制和更新機制
猜你喜欢
OneNote in-depth evaluation: using resources, plug-ins, templates
968 edit distance
Pinduoduo lost the lawsuit, and the case of bargain price difference of 0.9% was sentenced; Wechat internal test, the same mobile phone number can register two account functions; 2022 fields Awards an
No Yum source to install SPuG monitoring
After working for 5 years, this experience is left when you reach P7. You have helped your friends get 10 offers
[MySQL] basic use of cursor
1500萬員工輕松管理,雲原生數據庫GaussDB讓HR辦公更高效
New database, multidimensional table platform inventory note, flowus, airtable, seatable, Vig table Vika, Feishu multidimensional table, heipayun, Zhixin information, YuQue
【mysql】游标的基本使用
ICML 2022 | Flowformer: 任务通用的线性复杂度Transformer
随机推荐
OAI 5G NR+USRP B210安装搭建
Huawei device command
【Redis设计与实现】第一部分 :Redis数据结构和对象 总结
Statistical inference: maximum likelihood estimation, Bayesian estimation and variance deviation decomposition
R language visualizes the relationship between more than two classification (category) variables, uses mosaic function in VCD package to create mosaic plots, and visualizes the relationship between tw
LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
拼多多败诉,砍价始终差0.9%一案宣判;微信内测同一手机号可注册两个账号功能;2022年度菲尔兹奖公布|极客头条
Nodejs教程之让我们用 typescript 创建你的第一个 expressjs 应用程序
过程化sql在定义变量上与c语言中的变量定义有什么区别
15 millions d'employés sont faciles à gérer et la base de données native du cloud gaussdb rend le Bureau des RH plus efficace
Reflection operation exercise
OAI 5g nr+usrp b210 installation and construction
Thinking about agile development
[200 opencv routines] 220 Mosaic the image
Chris LATTNER, the father of llvm: why should we rebuild AI infrastructure software
Spiral square PTA
【微信小程序】運行機制和更新機制
2017 8th Blue Bridge Cup group a provincial tournament
R语言可视化两个以上的分类(类别)变量之间的关系、使用vcd包中的Mosaic函数创建马赛克图( Mosaic plots)、分别可视化两个、三个、四个分类变量的关系的马赛克图
【论文解读】用于白内障分级/分类的机器学习技术