Javascript 按角色出现位置排序

Javascript Sort by character appearance position

我有以下代码:

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
    const input = 'hello world';
    document.getElementById("demo").innerHTML = sortAlphabets(input);

    function sortAlphabets(input) {
        return input.split('').sort().join('');
    };
</script>

</body>
</html>

结果是:dehllloorw

但我想将其更改为按角色出现位置排序。结果应该是:hellloowrd

我该怎么做?
非常感谢。

谢谢。

您可以将比较函数与 .sort 结合使用,并且在该函数内您可以使用 input.indexOf 获取输入字符串中字符首次出现的索引。

input.split('').sort((a,b) => input.indexOf(a)-input.indexOf(b)).join('')

编辑

如果您想删除空格,只需在拆分后使用过滤器即可。

input.split('').filter(c=>c!==' ').sort((a,b) => input.indexOf(a)-input.indexOf(b)).join('')

您需要一个自定义排序功能,这里将按索引进行比较

const input = 'hello world';

let splited = input.split('').map(e => e.trim());

let sorted = splited.sort((a, b) => {
  return splited.indexOf(a) - splited.indexOf(b);
}).join('');

console.log(sorted);