gpt4 book ai didi

backbone.js - 按属性值过滤 Backbone 集合

转载 作者:行者123 更新时间:2023-12-03 06:56:33 25 4
gpt4 key购买 nike

我有一个定义的模型和一个集合:

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

});

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

当集合填充模型时,我需要一个由 Box 模型组成的新 Boxes 集合,该集合具有完整集合中包含的特定颜色属性,我这样做:

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

这可行,但我发现它有点复杂且效率低下。有没有办法以更简单的方式做同样的事情?

这是我描述的代码:http://jsfiddle.net/HB88W/1/

最佳答案

我喜欢返回集合的新实例。这使得这些过滤方法可链接(例如,boxes.byColor("red").bySize("L"))。

var Boxes = Backbone.Collection.extend({
model: Box,

byColor: function (color) {
filtered = this.filter(function (box) {
return box.get("color") === color;
});
return new Boxes(filtered);
}
});

var red_boxes = boxes.byColor("red")

关于backbone.js - 按属性值过滤 Backbone 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com