我有一对字符串:
JAY, ROB
有没有一种使用 javascript 的方法,我可以从这两个单词创建一个新单词,其中前面的字母表总是大于等于下一个字母表(例如,A 大于 B)
例如,在上面的字符串中我想比较JAY
的第一个字母和ROB
的第一个字母。由于 J
在与 R
比较时排在前面,因此新单词的第一个字母表将是 J
。比较第二个,由于 A
出现在 R
之前,它成为第二个字母,第三个字母类似地成为 R
。
所以最后的词是JAROBY
我不知道该如何处理这个问题。我在想我是否可以以某种方式使用 sort
函数,但不明白如何使用。
我正在尝试类似的东西:
var a = `JAY,ROB`;
var sorted = a.split(",").sort()
var firstLetter = sorted[0][0];
注意:可能不止一对。例如,JAY、ROB、APPLE、AAKO
最佳答案
这是一个适用于任何大小的字符串的答案。 这是一个“简单”的答案,当然不是最优化的,但任何人都可以轻松理解。
var a = `JAY,ROB,APPLE,AAKO`;
var nbOfLetters = a.replace(/,/g, "").length;
let result = "";
var sorted = a.split(",").sort(specialSort);
while (result.length < nbOfLetters)
{
result += sorted[0][0];
sorted[0] = sorted[0].slice(1);
sorted = sorted.sort(specialSort);
}
console.log("result", result);
function specialSort(a, b) {
if(a === "" || a === null) return 1;
if(b === "" || b === null) return -1;
if(a === b) return 0;
return a < b ? -1 : 1;
}
关于javascript - 对字符串中的字母进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287108/