array.sort(),可能不声明0值吗?

时间:2019-04-29 06:28:21

标签: typescript

在数组排序的情况下,可以使用

    array.sort((item1: any, item2: any) => {
        return item1.value < item2.value ? -1 : 1;
    });

代替

    array.sort((item1: any, item2: any) => {
        if item1.value < item2.value ? -1;
        if item1.value > item2.value ? 1;
        return 0;
    });

我的目标是使用尽可能少的代码。而不是像我后面的代码那样专门返回0,不是第一个代码补丁会自动解决“ 0”情况吗?如果没有,为什么不呢?

这是一个{[key:string]:string}的数组,我想按字母顺序排序。

1 个答案:

答案 0 :(得分:2)

您为什么要这样做?您可以 做到这一点,但是函数应该知道这两个项目均等同于可以正常工作。如果您在这里寻找一种班轮,那就去:

array.sort((item1: any, item2: any) => {
    return item1.value === item2.value ? 0 : (item1.value < item2.value ? -1 : 1);
});

甚至:

array.sort((a: any, b: any) => ({a.value === b.value ? 0 : (a.value < b.value ? -1 : 1)}));

仅对于数字,您可以简单地从另一个数字中减去一个数字:

array.sort((a: any, b: any) => a.value - b.value);