简体   繁体   English

按整数(第一个字符)对字符串数组进行排序

[英]Sort array of strings by integer (which is the first character)

I am wondering how should be the easy way to solve this problem. 我想知道应该怎么简单的方法来解决这个问题。

I have an array of strings, something like this: 我有一个字符串数组,像这样:

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" ]

And I would like to sort it by integer, which is the first character of this array (and will be every time), using javascript . 我想使用javascript将其按整数排序,该整数是此数组的第一个字符(并且每次都会出现)。 My desired output would be: 我想要的输出将是:

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" ]

Anyone can help? 有人可以帮忙吗?

How about simply parsing the string values to numbers 简单地将字符串值解析为数字怎么样

 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; } 

Use regex to get the numbers and after it compare the numbers. 使用正则表达式获取数字,然后对数字进行比较。

 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); 

You could match the starting integer value and sort by the delta of it. 您可以匹配起始整数值并按其增量排序。

 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; } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM