JavaScript的排序阵列由两个场 [英] Javascript sort array by two fields

查看:123
本文介绍了JavaScript的排序阵列由两个场的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  grouperArray.sort(功能(A,B){
    VAR A大小= a.gsize;
    VAR BSIZE = b.gsize;
    VAR aLow = a.glow;
    无功击= b.glow;
    的console.log(aLow +|+击);
    返回(asize的< BSIZE)? -1:(A大小> BSIZE)? 1:0;
});

所以上面的code排序由gsize阵列 - 从最小到最大。它的工作原理好。
但是,如果gsize是一样的我会把它想那么排序的光芒。

感谢。


解决方案

  grouperArray.sort(功能(A,B){
    VAR A大小= a.gsize;
    VAR BSIZE = b.gsize;
    VAR aLow = a.glow;
    无功击= b.glow;
    的console.log(aLow +|+击);    如果(A大小== BSIZE)
    {
        返回(aLow<打击)? -1:(aLow>打击)? 1:0;
    }
    其他
    {
        返回(asize的< BSIZE)? -1:1;
    }
});

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;
});

So the above code sorts the array by gsize - smallest to largest. It works good. But if the gsize is the same I would like it to then sort by glow.

Thanks.

解决方案

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;
    }
});

这篇关于JavaScript的排序阵列由两个场的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆