0

すべてタグの配列を持つモデルのコレクションがあります。

タグが 1 つあるモデルを取得したい場合は、次のようにします。

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 に答える