我想知道如何解决这个问题的简单方法。
我有一个字符串数组,如下所示:
Array [ "15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string" ]
我想用整数来排序,这是这个数组的第一个字符(并且每次都是),使用 javascript 。我想要的输出是:
Array [ "16 Some string", "15 Some string", "13 Some string", "12 Some string", "11 Some string", "10 Some string", "9 Some string", "8 Some string", "6 Some string", "5 Some string" ]
任何人都可以提供帮助吗?
答案 0 :(得分:2)
如何简单地将字符串值解析为数字
var array = ["15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string"];
array.sort((a, b) => parseFloat(b) - parseFloat(a));
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
使用正则表达式获取数字,然后比较数字。
const array = [ "15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string" ];
array.sort((a,b) => b.match(/\d+/g) - a.match(/\d+/g));
console.log(array);

答案 2 :(得分:1)
您可以匹配起始整数值并按其增量排序。
function getN(s) {
return s.match(/^\d+/);
}
var array = ["15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string"];
array.sort(function (a, b) {
return getN(b) - getN(a);
});
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }