5

我已经完成了一个现代 JavaScript 练习,以创建一个页面,该页面采用一串单词并以不区分大小写的方式对它们进行排序。这是代码笔: http : //codepen.io/Mcabrams/full/FvuJg :

// relevant code:
var sorted = words.map(function(value){
    return value.toLowerCase();
}).sort();

我想知道如何制作与 类似的函数sortWords(),但是在以不区分大小写的方式进行排序时,当我返回排序后的单词时,我想保持原来的大小写。

所需功能的示例:

sortWords(["D","b","A","c"]) ======> ["A", "b", "c", "D"]

目前,原来的外壳在我的功能中丢失了。

4

1 回答 1

10

在内置Array.sort()方法中使用自定义比较器:

function insensitive(s1, s2) {
  var s1lower = s1.toLowerCase();
  var s2lower = s2.toLowerCase();
  return s1lower > s2lower? 1 : (s1lower < s2lower? -1 : 0);
}

["D","b","A","c"].sort(insensitive);  //"A", "b", "c", "D"
于 2013-01-13T22:11:51.787 回答