获取骨干集合中的所有模型,其中属性不等于某个值

时间:2014-02-06 16:17:48

标签: javascript backbone.js

这取自Backbone.js文档:

var musketeers = friends.where({job: "Musketeer"});

在哪里可以得到一系列工作相同的模型是“火枪手”。但是我该怎么做呢?除了“火枪手”之外,我怎样才能获得一系列模型,其中除了“火枪手”之外还有什么工作?

2 个答案:

答案 0 :(得分:12)

我不知道哪些事情与此直接相反,但您可以使用filter来达到同样的效果。

var notMusketeers = friends.filter(function (friend) {
  return friend.job !== 'Musketeer';
});

答案 1 :(得分:1)

如果您直接在Backbone集合上使用filter,则必须以这种方式使用它:

var notMusketeers = friends.filter(function(model){
    return model.get('job') !== 'Musketeer';
});

然后notMusketeers将成为Backbone模型实例的数组。

如果friends只是一个对象数组(标准集合),则可以这样使用下划线filter

var notMusketeers = _(friends).filter(function(obj){
    return obj.job !== 'Musketeer';
});

var notMusketeers = _.filter(friends, function(obj){
    return obj.job !== 'Musketeer';
});