在Javascript中按字母顺序对字符串排序

在Javascript中按字母顺序对字符串排序,javascript,sorting,Javascript,Sorting,我对一项相对简单的任务有一些问题。我必须对字符串的字符进行排序,然后返回排序后的字符串(在Javascript中)。在谷歌搜索答案后,我找到了解决方案,但由于某些原因,这些方法没有返回我所期望的输出 var str = "Something"; var chars = []; for (var i = 0; i < str.length; i++) { chars.push(str.charAt(i)); } chars.sort().join(""); console.log

我对一项相对简单的任务有一些问题。我必须对字符串的字符进行排序,然后返回排序后的字符串(在Javascript中)。在谷歌搜索答案后,我找到了解决方案,但由于某些原因,这些方法没有返回我所期望的输出

var str = "Something";
var chars = [];

for (var i = 0; i < str.length; i++) {
    chars.push(str.charAt(i));
}

chars.sort().join("");
console.log(chars);
1.)尽管使用了.join()方法,字符仍然是逗号分隔的。还尝试使用.replace()方法,但这就引出了第二个问题

2.)虽然.join()应该返回字符串,但字符的类型仍然是一个对象。我还尝试使用.toString()方法,但输出类型仍然是一个对象。

join()
不修改数组,但返回一个新对象,而您当前未使用该对象。因此,您的代码应该如下所示:

var str = "Something";
var chars = [];

for (var i = 0; i < str.length; i++) {
    chars.push(str.charAt(i));
}

chars = chars.sort().join("");
console.log(chars);

chars.push()
将字符推入数组,因此需要一个逗号-请使用
chars+=
代替。请注意,默认情况下
.sort()
不按字母顺序排序,而是根据每个字符的Unicode代码点值进行排序。如果你有所有的小写或大写字母,那么它将按字母顺序结束,但在你的情况下,你没有。(因此,
“apple”
“Zebra”
之后,但在
“Zebra”
之前)可能重复
var str = "Something";
var chars = [];

for (var i = 0; i < str.length; i++) {
    chars.push(str.charAt(i));
}

chars = chars.sort().join("");
console.log(chars);
let chars = str.split('').sort().join('');
const sorted = str.split('').sort().join('')