我有一个模型集合,这些模型都有一组标签。
如果我想获取一个有一个标签的模型,我会这样做:
models.filter(function(x) {
return _.contains(x.get("tags"), 'google');
});
这将抓取具有标签 google 的模型。我遇到的问题是我不能在那里放置一个标签,我需要它是一个数组。我将如何获取所有具有多个标签的模型(例如:google、yahoo、apple)?contains 方法仅支持 1 个字符串,不支持数组
我有一个模型集合,这些模型都有一组标签。
如果我想获取一个有一个标签的模型,我会这样做:
models.filter(function(x) {
return _.contains(x.get("tags"), 'google');
});
这将抓取具有标签 google 的模型。我遇到的问题是我不能在那里放置一个标签,我需要它是一个数组。我将如何获取所有具有多个标签的模型(例如:google、yahoo、apple)?contains 方法仅支持 1 个字符串,不支持数组
你可以这样使用_.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')