Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按数字顺序对字符串数组排序?_Javascript_Arrays_Sorting - Fatal编程技术网

Javascript 如何按数字顺序对字符串数组排序?

Javascript 如何按数字顺序对字符串数组排序?,javascript,arrays,sorting,Javascript,Arrays,Sorting,例如,我有一个字符串数组['item 2'、'item 1'、'item 10'、'item 4']。我希望它像这样['item 1'、'item 2'、'item 4'、'item 10']但是默认情况下,sort()函数按字母顺序对值进行排序,这意味着它看起来像这样['item 1'、'item 10'、'item 2'、'item 4']您可以将一个函数传递给sort()方法并按自定义方式对其排序 let result = arr.sort((a,b) => a.split(' ')

例如,我有一个字符串数组
['item 2'、'item 1'、'item 10'、'item 4']
。我希望它像这样
['item 1'、'item 2'、'item 4'、'item 10']
但是默认情况下,
sort()
函数按字母顺序对值进行排序,这意味着它看起来像这样
['item 1'、'item 10'、'item 2'、'item 4']
您可以将一个函数传递给
sort()
方法并按自定义方式对其排序

let result = arr.sort((a,b) => a.split(' ')[1]-b.split(' ')[1])

console.log(result);
let数组=['item 1'、'item 10'、'item 2'、'item 4'];
var customSort=函数(a,b){
返回编号(a.替换(“项目”)—编号(b.替换(“项目”);
}
log(array.sort(customSort));
//一行
console.log(array.sort((a,b)=>Number(a.replace(“item”),“”)-Number(b.replace(“item”),“”);

只需获取数字并对其排序即可

let数组=[“第1项”、“第10项”、“第2项”、“第4项];
const result=array.sort((a,b)=>a.match(/\d+/)-b.match(/\d+/);

控制台日志(结果)您可以在中添加自定义比较函数

const myArr=[“第2项”、“第1项”、“第10项”、“第4项];
const sortArr=myArr.sort((a,b)=>{
常量num1=数字(a.分割(“”)[1]);
常量num2=数量(b.分割(“”)[1]);
返回num1-num2;
});
控制台日志(Sortar)
创建一个自定义的
sort()函数
,并使用
切片
获取字符串的编号,然后应用
number()
将其转换为一个数字进行比较

注意:
sort()
将更新原始数组

const数组=[“第1项”、“第10项”、“第2项”、“第4项];
排序((a,b)=>Number(a.slice(5))-Number(b.slice(5));

console.log(数组)您可以选择任何答案。这是一个更通用的解决方案,用于排序以数值结尾的字符串(或不以数值结尾的字符串)

const tonumberzero=str=>{
常量maybeNumber=str.match(/(\d+)$/);
返回maybenNumber&+maybenNumber[0]| | 0;
};
字符串与数字的常量排序计数=(a,b)=>
Tonumberzero(a)-Tonumberzero(b);
console.log(
[‘项目2’、‘项目1’、‘项目10’、‘项目4’、‘项目222’,
“anything1023”、“notnumber”、“生命的意义是42”]
.sort(字符串与数字的排序)
);array.sort((a,b)=>a.localeCompare(b,'EN',{numeric:true}))将完成此操作。