我在完成一个比较简单的任务时遇到了一些问题。我需要对一个字符串中的字符进行排序,并返回排好序的字符串(使用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.) typeof chars仍然是一个对象,尽管.join()应该返回一个字符串。我还尝试使用.toString()方法,但输出类型仍然是一个对象。
chars.push()
将元素推入数组中,因此需要使用逗号 - 可以改用chars +=
。 - StudioTime.sort()
不按字母顺序进行排序,而是根据每个字符的 Unicode 码点值进行排序。如果你只有小写或大写字母,那么这将变成按字母顺序排序,但在你的情况下不是这样。(所以"apple"
在"Zebra"
之后,但在"zebra"
之前。) - nnnnnn