Ответ 1
Я не знаю, что-то прямо противоположное, но вы можете использовать filter с тем же эффектом.
var notMusketeers = friends.filter(function (friend) {
return friend.job !== 'Musketeer';
});
Это взято из документации Backbone.js:
var musketeers = friends.where({job: "Musketeer"});
Где вы можете получить массив моделей, где работа равна "Musketeer". Но как я поступаю наоборот? Как я могу получить массив моделей, где работа - это что-то еще, кроме "Musketeer"?
Я не знаю, что-то прямо противоположное, но вы можете использовать filter с тем же эффектом.
var notMusketeers = friends.filter(function (friend) {
return friend.job !== 'Musketeer';
});
Если вы используете filter
непосредственно в коллекции Backbone, вы должны использовать его следующим образом:
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';
});