javascript排序方法没有在数组[1]上运行

时间:2016-07-14 18:48:27

标签: javascript arrays sorting methods

var test = ['hello', 'Hello']
var arg1 = test[0].split('').sort().join('').toLowerCase();  // ehllo
var arg2 = test[1].split('').sort().join('').toLowerCase();  // hello

有人能够解释为什么sort方法似乎对测试数组的第二个元素没有影响吗?

3 个答案:

答案 0 :(得分:8)



{{1}}




大写字母的范围是65到90.小写字母的范围是97到122.字符串比较基于字符代码。

通过使用自定义函数,考虑使用您的排序更明确。

答案 1 :(得分:4)

如果你想忽略大小写,你应该在排序前小写:



console.log('Hello'.toLowerCase().split('').sort().join('')); // ehllo




答案 2 :(得分:2)

case insensitive sorting in Javascript

之前,StackOverflow已回答了这个问题
'Hello'.split('').sort(function (a, b) {
  return a.toLowerCase().localeCompare(b.toLowerCase());
}).join('');

如果你想要一个区分大小写的输出,例如Hello将成为eHllo