这是从Backbone.js文档中获取的:
var musketeers = friends.where({job: "Musketeer"});
您可以在其中获得等于工作的一系列模型是“ Musketeer”。但是,我该怎么做相反呢?如何获得除“ Musketeer”外其他工作以外的其他模型?
我不知道是完全相反的东西,但是您可以使用filter来达到相同的效果。
var notMusketeers = friends.filter(function (friend) {
return friend.job !== 'Musketeer';
});
如果直接在Backbone集合上使用filter
,则必须使用这种方式:
var notMusketeers = friends.filter(function(model){
return model.get('job') !== 'Musketeer';
});
然后notMusketeers
将是骨干模型实例的数组。
如果friends
只是对象数组(标准集合),则可以通过以下方式使用下划线filter
:
var notMusketeers = _.filter(friends, function(obj){
return obj.job !== 'Musketeer';
});
如果您可以使用ES6 +功能,const
,解构和箭头功能可能会使它变得不那么冗长:
const notMusketeers = friends.filter(({ job }) => job !== 'Musketeer');