我有一个包含所有标签数组的模型的集合。
如果我想抓住一个有一个标签的模型,我会这样做:
models.filter(function(x) {
return _.contains(x.get("tags"), 'google');
});
这将抓住具有谷歌标签的模型。我遇到的问题是我不能在那里放一个标签,我需要它成为一个数组。我将如何抓住所有具有多个标签的模型(例如:google,yahoo,apple)? contains方法仅支持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)
将为您提供一个数组,其中包含a
和b
共有的所有元素,如果交集的大小与数组/集相同寻找然后m.get('tags')
拥有你想要的一切。