按两个数字字段对 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 许可协议

阅读 618
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题