在Javascript中按字母顺序对字符串排序
我对一项相对简单的任务有一些问题。我必须对字符串的字符进行排序,然后返回排序后的字符串(在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
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('')