javascript - 对字符串中的字母进行排序

标签 javascript algorithm

我有一对字符串:

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

http://jsfiddle.net/1s9axLzu/

关于javascript - 对字符串中的字母进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287108/

相关文章:

javascript - 使用 Paste.js 将屏幕截图粘贴到文本区域,但如何将其传输到 Rails?

javascript - Rxjs 与 Lodash 对比? rxjs 可以替代 lodash 吗?

javascript - HTML5 Canvas 更快 fillText() vs drawImage()

javascript - AngularJS Controller 等待响应(或设置回调)

algorithm - 如何判断图片是否需要旋转

algorithm - 为什么在 Baum Welch 算法中使用隐马尔可夫模型与马尔可夫模型

python - 将哈希算法从 C 语言翻译成 Python

javascript - 如何解析 "Firefox can' t 建立与 127.0.0.1 :8081"处服务器的连接

python - 了解递归函数 - 快速选择 - 在线性时间内查找中值

algorithm - 什么是次线性算法?