Filtrar e classificar coleção de backbone com matriz de IDs

Eu sou muito novo no Backbone, então estou me metendo em alguns problemas que não consigo entender.

Eu tenho uma coleção de Backbone com pouco mais de 100 itens. Eu quero filtrar estes com uma matriz de ids, que está funcionando bem, mas eu quero a ordem dos itens também com base na ordem de itens desta matriz. Isso não está funcionando. Os outros métodos de classificação parecem ser de base asciibética, não é o que eu preciso também. É possível obter itens usando esse filtro e depois colocá-los na coleção na ordem que defini?

Eu tenho uma matriz de id que eu filtrar com esta matriz se parece com isso:

var dDefaultItems = ['1','2','146','3','4','9','26','8','96','10','11','54','145','273','38'];

O código para a coleta e filtragem é semelhante ao seguinte:

var ChannelCollection = Backbone.Collection.extend({        
    fetch : function() {
       var params = _.extend({}, arguments, { 
            data : { 
                "groupnumber" : "1000"
            }
        });
        this.constructor.__super__.fetch.apply(this, [params]);

    },

    model : Channel,

    url : function () {
        return utility.apiUrl('/myurl/tothething');  
    },

    filterData: function(params) {

        this.originalModels = this.models.slice();

        _.each(params, function(val, key){
            if (typeof val !== 'object') val = [ val ];
            this.models = _.filter(this.models, function(model){
                return _.indexOf(val, model.get(key)) !== -1;
            }, this);
        }, this);
        return this.reset(this.models).toJSON();
    },

    parse : function(json) {            

        return json.channelInfoList;
    }

 });

Então eu mostro isso com este código (há outros pedaços de código para definir modelos e outros atributos que eu não acho que sejam relevantes, posso estar errado, mas estou pensando que alguém saberá o que eu preciso de olhar para isto.)

var ChannelListView = Backbone.View.extend({

    initialize: function() {
       var _this = this;

        currentChannelList = new ChannelCollection();

        currentChannelList.once("sync", function() {
           _this.render();
        });

        currentChannelList.fetch();
    },
    render : function() {
      var _this = this;

      $(_this.el).empty();

     dust.render("list-channels", { channelList : currentChannelList.filterData({id: dDefaultItems})} , function(err, html) {

        var $el = $(html).appendTo($(_this.el));
      });  
    }
 });   

questionAnswers(1)

yourAnswerToTheQuestion