繁体   English   中英

Typescript:如何不区分大小写地对数组排序?

[英]Typescript: how to sort an array, case insensitively?

我试图以不敏感的方式对打字稿中的数组进行排序。 在javascript中,可以用

    list.sort(function (a, b) {
      return a.toLowerCase().localeCompare(b.toLowerCase());
    });

在打字稿中排序看起来像

    list.sort((a, b) => {
      if (a > b) {
        return 1;
      }
      if (a < b) {
        return -1;
      }
      return 0;
    });

从[F,E,D,c,b,a]开始,我希望得到[a,b,c,D,E,F]

javascript排序提供了预期的结果,但打字稿排序返回[D,E,F,a,b,c]。 如何使打字稿排序不区分大小写?

编辑:我不能使用javascript方法的原因是因为在打字稿a和b是布尔值,并且没有,toLowerCase()方法

试试这个排序功能。 基本上,这是对您所拥有财产的重写,但可能会更干净。 它也可以。 编译器需要一个类型。 不管是string还是在这种情况下any是。 我已经更新了答案,以更改传入字符串的类型。 它适用于此数组以及键入any一样容易。

function sortStrings(a: string, b: string) {
    a = a.toLowerCase();
    b = b.toLowerCase();
    return a > b ? 1 : (a < b ? -1 : 0);
}

console.log(['F', 'E', 'D', 'c', 'b', 'a'].sort(sortStrings));

输出:

[ 'a', 'b', 'c', 'D', 'E', 'F' ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM