Backbone:返回具有特定标记的模型

时间:2013-01-08 20:54:47

标签: javascript backbone.js underscore.js

我有一个包含所有标签数组的模型的集合。

如果我想抓住一个有一个标签的模型,我会这样做:

models.filter(function(x) {
    return _.contains(x.get("tags"), 'google');
});

这将抓住具有谷歌标签的模型。我遇到的问题是我不能在那里放一个标签,我需要它成为一个数组。我将如何抓住所有具有多个标签的模型(例如:google,yahoo,apple)? contains方法仅支持1个字符串而不支持数组

1 个答案:

答案 0 :(得分:0)

你可以这样使用_.intersection

var want_all = ['google', 'yahoo', 'apple'];
models.filter(function(m) {
    return _.intersection(m.get('tags'), want_all).length == want_all.length;
});

_.intersection(a, b)将为您提供一个数组,其中包含ab共有的所有元素,如果交集的大小与数组/集相同寻找然后m.get('tags')拥有你想要的一切。