在Array中对javascript对象进行排序

时间:2015-05-11 23:58:58

标签: javascript jquery

我想制作一个javascript动态菜单,我有一些麻烦,我得到一个json数据和javascript我想设置一个菜单和子菜单...

问题是

err = vImageExtractChannel_ARGB8888(&_src, &_blu, 2, kvImageNoError);
...
uint8_t copyMask = 1;
vImageOverwriteChannels_ARGB8888(&_blu, &_src, &_dst, copyMask, kvImageNoFlags);

我需要做的是listMenu[ { id:10, name: 'financial', submenu: 0, icon: 'fa-bar-chart' }, { id:11, name: 'bill', submenu: 10, icon: 'fa-bar-chart' }, { id:12, name: 'Pay', submenu: 10, icon: 'fa-bar-chart' }, { id:13, name: 'Contact', submenu: 2, icon: 'fa-bar-chart' } ] submenu的关系,它将是这样的:

  • 财务(子菜单0)

  • Bill(子菜单10)

  • 付款(子菜单10)

  • 联系

1 个答案:

答案 0 :(得分:0)

如果要使用某种自定义逻辑对数组进行排序,请使用Array.prototype.sort

在您的情况下,这将是这样的:

var listMenu = [
    {id:10, name: 'financial', submenu: 0, icon: 'fa-bar-chart'}, 
    {id:11, name: 'bill', submenu: 10, icon: 'fa-bar-chart'}, 
    {id:12, name: 'Pay', submenu: 10, icon: 'fa-bar-chart'}, 
    {id:13, name: 'Contact', submenu: 2, icon: 'fa-bar-chart'}
]

var sortedList = listMenu.sort( function( a, b ){
    if( a.submenu > b.submenu ){
        return 1
    } else if ( b.submenu > a.submenu ){
        return -1
    } else {
        return 0
    }
})