0

我有一个模型集合,这些模型都有一组标签。

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

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

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

4

1 回答 1

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)共有的所有元素,如果交集与您正在寻找的数组/集合的大小相同,则拥有您正在寻找的一切。abm.get('tags')

于 2013-01-08T21:26:57.083 回答