【问题标题】:Custom case insensitive sort function that retains original casing?保留原始大小写的自定义不区分大小写排序功能?
【发布时间】:2012-12-27 20:13:36
【问题描述】:

我已经完成了一个现代 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"]

目前我的函数中丢失了原始大小写。

【问题讨论】:

    标签: javascript sorting user-defined-functions case-insensitive


    【解决方案1】:

    在内置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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 2020-09-13
      • 2012-06-22
      • 1970-01-01
      • 2013-04-17
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多