【发布时间】:2016-12-05 12:25:16
【问题描述】:
我在一个相对简单的任务中遇到了一些问题。我必须对字符串的字符进行排序并返回排序后的字符串(在 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 += -
请注意,默认情况下
.sort()不按字母顺序排序,它根据每个字符的 Unicode 代码点值进行排序。如果您全部使用小写或全部大写字母,则以字母顺序结束,但在您的情况下,您没有。 (所以"apple"在"Zebra"之后,但在"zebra"之前。)
标签: javascript sorting