按两个数字字段对 Javascript 数组进行排序

新手上路,请多包涵
grouperArray.sort(function (a, b) {
    var aSize = a.gsize;
    var bSize = b.gsize;
    var aLow = a.glow;
    var bLow = b.glow;
    console.log(aLow + " | " + bLow);
    return (aSize < bSize) ? -1 : (aSize > bSize) ? 1 : 0;
});

此代码按 gsize 对数组进行排序,从小到大。

我如何将其更改为 gsize 排序,然后再按 glow 排序?

原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 621
2 个回答
grouperArray.sort(function (a, b) {
    var aSize = a.gsize;
    var bSize = b.gsize;
    var aLow = a.glow;
    var bLow = b.glow;
    console.log(aLow + " | " + bLow);

    if(aSize == bSize)
    {
        return (aLow < bLow) ? -1 : (aLow > bLow) ? 1 : 0;
    }
    else
    {
        return (aSize < bSize) ? -1 : 1;
    }
});

原文由 Chris Eberle 发布,翻译遵循 CC BY-SA 3.0 许可协议

grouperArray.sort(function (a, b) {
    return a.gsize - b.gsize || a.glow - b.glow;
});

较短的版本

原文由 anmorozov23 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题