我遇到了一些相对简单的任务问题。我必须对字符串的字符进行排序并返回已排序的字符串(在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);
我收到的输出是:
["S", "e", "g", "h", "i", "m", "n", "o", "t"]
1。)尽管使用了.join()方法,但字符串仍然以逗号分隔。还尝试使用.replace()方法,但这让我想到了第二个问题。
2。)尽管.join()应该返回一个字符串,但字体仍然是一个对象。我也尝试使用.toString()方法,但输出类型仍然是一个对象。
答案 0 :(得分:9)
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);
然而,您可以在单行中执行此操作:
let chars = str.split('').sort().join('');
答案 1 :(得分:2)
const sorted = str.split('').sort().join('')