Como classificar uma matriz de objetos aninhados no javascript

Eu tenho uma matriz como esta

var array = [{
    order: 3,
    sub - array: [{
        order: 2
    },{
        order: 1
    }]
},{
    order: 2,
    sub - array: [{
        order: 2
    },{
        order: 1
    }]
}];​

Agora quero classificar a coleção completa no atributoorder, portanto, as matrizes externas e internas devem ser classificadas com base na ordem do atributo.

O resultado final deve ser assim.

var array = [{
    order: 2,
    sub - array: [{
        order: 1
    },{
        order: 2
    }]
},{
    order: 3,
    sub - array: [{
        order: 1
    },{
        order: 2
    }]
}];​

questionAnswers(3)

yourAnswerToTheQuestion