Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 - Fatal编程技术网

对javascript数组进行字母数字排序

对javascript数组进行字母数字排序,javascript,Javascript,我有这个数组 const arr = ['1','2','3',...'30','31','LAST'] 我需要按ASC编号排序 下面是示例代码,我不知道如何排序。 请帮帮我 const arr2 = ['2','1','10','LAST','20'] 我需要结果['1'、'2'、'10'、'20'、'LAST']而不是['1'、'10'、'2'、'20'、'LAST']您可以检查NaN并将该值移到底部 不按字符串进行回调排序,并且不考虑字符串数值 var数组=['2','ZIRST',

我有这个数组

const arr = ['1','2','3',...'30','31','LAST']
我需要按ASC编号排序

下面是示例代码,我不知道如何排序。 请帮帮我

const arr2 = ['2','1','10','LAST','20']

我需要结果
['1'、'2'、'10'、'20'、'LAST']
而不是
['1'、'10'、'2'、'20'、'LAST']

您可以检查
NaN
并将该值移到底部

不按字符串进行回调排序,并且不考虑字符串数值

var数组=['2','ZIRST','1','10','LAST','20','Sara'];
array.sort((a,b)=>isNaN(a)-isNaN(b)| a-b | a>b |-(aconsole.log(数组)
您可以检查
NaN
并将该值移到底部

不按字符串进行回调排序,并且不考虑字符串数值

var数组=['2','ZIRST','1','10','LAST','20','Sara'];
array.sort((a,b)=>isNaN(a)-isNaN(b)| a-b | a>b |-(aconsole.log(数组)您需要检查数组中的给定元素是否为数字,然后根据数字和字符串对其进行相应排序。您可以创建一个可重用的函数
sortNumber
,这样它就可以用于多个阵列,而不需要重复相同的逻辑

函数排序编号(a,b){
返回isNaN(a)-isNaN(b)| a-b;
}
变量inputArray=['2'、'1'、'10'、'LAST'、'20'];
输入数组。排序(sortNumber);
控制台日志(inputArray);
inputArray=['21'、'31'、'110'、'LAST'、'220'];
输入数组。排序(sortNumber);

控制台日志(inputArray)您需要检查数组中的给定元素是否为数字,然后根据数字和字符串对其进行相应排序。您可以创建一个可重用的函数
sortNumber
,这样它就可以用于多个阵列,而不需要重复相同的逻辑

函数排序编号(a,b){
返回isNaN(a)-isNaN(b)| a-b;
}
变量inputArray=['2'、'1'、'10'、'LAST'、'20'];
输入数组。排序(sortNumber);
控制台日志(inputArray);
inputArray=['21'、'31'、'110'、'LAST'、'220'];
输入数组。排序(sortNumber);

控制台日志(inputArray)您可以像这样使用自定义比较器:

var arr = ['2','1','10','LAST','20'];
arr.sort((a,b)=>{
  return parseInt(a) > parseInt(b)  || isNaN(a);
});

您可以像这样使用自定义比较器:

var arr = ['2','1','10','LAST','20'];
arr.sort((a,b)=>{
  return parseInt(a) > parseInt(b)  || isNaN(a);
});
功能排序(arr){
让分拣机=arr.sort();
分拣机forEach((v,i)=>{
如果(!isNaN(parseInt(v))){
分拣机[i]=parseInt(v);
}否则{
分拣机[i]=v;
}
});
返回sortedar.sort((a,b)=>a-b.map(字符串);
}
//测验
log(sortArray(['2','1','10','LAST','20']);
log(sortArray(['5','ZIRST','1','10','LAST','20','Sara'])
功能排序(arr){
让分拣机=arr.sort();
分拣机forEach((v,i)=>{
如果(!isNaN(parseInt(v))){
分拣机[i]=parseInt(v);
}否则{
分拣机[i]=v;
}
});
返回sortedar.sort((a,b)=>a-b.map(字符串);
}
//测验
log(sortArray(['2','1','10','LAST','20']);

log(sortArray(['5','ZIRST','1','10','LAST','20','Sara'])
您可以使用
localeCompare
numeric
属性上的数组进行排序

常量数组=[“1”、“5”、“10”、“20”、“零”、“最后一个”、“Sara”]; sort((a,b)=>a.localeCompare(b,未定义,{numeric:true}));
console.log(数组)
您可以使用
localeCompare
numeric
属性上的数组进行排序

常量数组=[“1”、“5”、“10”、“20”、“零”、“最后一个”、“Sara”]; sort((a,b)=>a.localeCompare(b,未定义,{numeric:true}));
console.log(数组)此函数不能很好地对数组进行排序,因为有多个单词作为字符串:['5','ZIRST','1','10','LAST','20','Sara']。它返回[“1”、“5”、“10”、“20”、“ZIRST”、“LAST”、“Sara”]而不是[“1”、“5”、“10”、“20”、“LAST”、“Sara”、“ZIRST”]@mattyo,我在末尾添加了字符串排序。很好!整洁干净的代码。此函数不能很好地对数组进行排序,因为它包含多个字符串:['5'、'ZIRST'、'1'、'10'、'LAST'、'20'、'Sara']。它返回[“1”、“5”、“10”、“20”、“ZIRST”、“LAST”、“Sara”]而不是[“1”、“5”、“10”、“20”、“LAST”、“Sara”、“ZIRST”]@mattyo,我在末尾添加了字符串排序。很好!整洁干净的代码。