Filtruj zbiór kręgosłupa według wartości atrybutu

Mam zdefiniowany model i kolekcję:

var Box = Backbone.Model.extend({
    defaults: {
        x: 0,
        y: 0,
        w: 1,
        h: 1,
        color: "black"
    }

});

var Boxes = Backbone.Collection.extend({
    model: Box
});

Gdy kolekcja jest wypełniona modelami, potrzebuję nowej kolekcji pudełek wykonanych z modeli pudełek, które mają określony atrybut koloru zawarty w pełnej kolekcji, robię to w ten sposób:

var sorted = boxes.groupBy(function(box) {
    return box.get("color");
});


var red_boxes = _.first(_.values(_.pick(sorted, "red")));

var red_collection = new Boxes;

red_boxes.each(function(box){
    red_collection.add(box);
});

console.log(red_collection);

To działa, ale uważam to za trochę skomplikowane i nieefektywne. Czy istnieje sposób na zrobienie tego samego w prostszy sposób?

Oto kod, który opisałem:http://jsfiddle.net/HB88W/1/

questionAnswers(2)

yourAnswerToTheQuestion