我有这个字符串:
let sx = ";1,2,3,4;5;10,11;"
字符串有单独的部分,用";"分隔,然后用","分隔,因此这些部分如下所示:
1、2、3、4、5和10,11
在数字上,部件将始终按升序排列,但不一定是连续的.
然后,网站的用户创建另一个"部分",它可能是"6,7,8,9",总是连续的,总是不同于"sx"的任何部分,但随机(它可能是"28,29,30"或"15").我把这个部分命名为"S1".现在的目标是将"sample"与"s1"连接起来,并根据每个部分的第一个数字对其进行排序.以下是我try 过的:
let sx = ";1,2,3,4;5;10,11;";
let s1 = "6,7,8,9";
//join "sx" with "s1", and split the new string by ";":
s1 = sx.concat(";" + s1 + ";");
s1 = s1.split(";").filter(Boolean);
//sort s1 by the first number of each part:
s1.sort(function(a, b) {
var ax = a[0], bx = b[0];
return parseInt(ax) - parseInt(bx);
});
console.log(s1);
尽管我使用了"parseInt",但上面示例中的结果返回:"1,2,3,4,10,11,5,6,7,8,9".
我需要的是:"1,2,3,4,5,6,7,8,9,10,11",各个部分是:
"1,2,3,4"和"5"以及"6,7,8,9"和"10,11",这样我就可以正确地更新原始字符串"sx".
我做错了什么?顺便说一下,我不完全确定最终结果是字符串还是数组(?),所以请原谅这个问题的标题!