试图了解JavaScript中不区分大小写的排序方法

时间:2019-06-25 15:31:42

标签: javascript arrays string sorting case-insensitive

我的目标是采用一个字符串,该字符串将是一个多词短语或语句。我要使用此字符串,并返回由所有参数字符串的各个字符组成的单个字符串,按字母顺序排列,没有重复。如果我可以忽略自己所拥有的空间,那么我真的也希望能够做到这一点。

我的主要问题是尝试了解array.sort()方法中自定义比较器的return语句。请帮助我理解1,-1和0 ...也是一个更基本的概念,当我们说str1> str2时,是说str1就像“ a”,而str2就像“ b”,或者反之-是吗?

***由于我的代表得分太低,因此我无法对原始帖子发表评论。

最初发布的Custom case insensitive sort function that retains original casing?

**将s1和s2更改为str1和str2

贷记https://stackoverflow.com/users/605744/tomasz-nurkiewicz

我发现了几种类似的排序方法,分别使用1,-1和0。但是我找不到任何解释。

这是我正在使用的比较器以及使用它的上下文:

    txt = "There was a Crocodile in my bathroom this morning!";
function insensitive(str1, str2) {
  var str1lower = str1.toLowerCase();
  var str2lower = str2.toLowerCase();
  return str1lower > str2lower? 1 : 
      (str1lower < str2lower? -1 : 0);
}

    txtArray = txt.split('').sort(insensitive);

这可以正常工作,但是我不了解return语句中的1,-1和0。它们如何在排序功能等中工作。

0 个答案:

没有答案