当前位置:网站首页>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
边栏推荐
- Is this the feeling of being spoiled by bytes?
- el-table表格——获取单击的是第几行和第几列 & 表格排序之el-table与sort-change、el-table-column与sort-method & 清除排序-clearSort
- Aike AI frontier promotion (7.6)
- 监控界的最强王者,没有之一!
- Yyds dry inventory run kubeedge official example_ Counter demo counter
- 面试官:Redis中有序集合的内部实现方式是什么?
- R语言可视化两个以上的分类(类别)变量之间的关系、使用vcd包中的Mosaic函数创建马赛克图( Mosaic plots)、分别可视化两个、三个、四个分类变量的关系的马赛克图
- 基于STM32单片机设计的红外测温仪(带人脸检测)
- Why do job hopping take more than promotion?
- 【mysql】游标的基本使用
猜你喜欢
硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件
新型数据库、多维表格平台盘点 Notion、FlowUs、Airtable、SeaTable、维格表 Vika、飞书多维表格、黑帕云、织信 Informat、语雀
基于STM32单片机设计的红外测温仪(带人脸检测)
Swagger UI教程 API 文档神器
全网最全的知识库管理工具综合评测和推荐:FlowUs、Baklib、简道云、ONES Wiki 、PingCode、Seed、MeBox、亿方云、智米云、搜阅云、天翎
Comprehensive evaluation and recommendation of the most comprehensive knowledge base management tools in the whole network: flowus, baklib, jiandaoyun, ones wiki, pingcode, seed, mebox, Yifang cloud,
【mysql】游标的基本使用
039. (2.8) thoughts in the ward
MLP (multilayer perceptron neural network) is a multilayer fully connected neural network model.
Distributed ID
随机推荐
Common English vocabulary that every programmer must master (recommended Collection)
Taylor series fast Fourier transform (FFT)
js中,字符串和数组互转(一)——字符串转为数组的方法
The mail command is used in combination with the pipeline command statement
嵌入式开发的7大原罪
Forward maximum matching method
HMS core machine learning service creates a new "sound" state of simultaneous interpreting translation, and AI makes international exchanges smoother
[200 opencv routines] 220 Mosaic the image
Mécanisme de fonctionnement et de mise à jour de [Widget Wechat]
基于深度学习的参考帧生成
1500萬員工輕松管理,雲原生數據庫GaussDB讓HR辦公更高效
Why do job hopping take more than promotion?
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
What are RDB and AOF
Xcode6 error: "no matching provisioning profiles found for application"
【mysql】游标的基本使用
Thinking about agile development
SAP UI5 框架的 manifest.json
Kubernetes learning summary (20) -- what is the relationship between kubernetes and microservices and containers?
面试官:Redis中有序集合的内部实现方式是什么?