使用Underscore,我可以检查列表是否包含单个项目:
_.contains([1, 2, 3], 3);
现在我想扩展它以检查列表是否包含来自另一个列表的任何项目:
_.contains([1, 2, 3], [4, 1]);
这就是我所拥有的,但有更简洁的方法吗?
var isInList = _.some(_.map([1, 2, 3], function(d){ return _.contains([4, 1], d); }));
答案 0 :(得分:4)
使用_.intersection
功能,就像这样
var isInList = _.intersection([1, 2, 3], [4, 1]).length !== 0;
答案 1 :(得分:1)
你可能想要_.intersection
。这将返回两个数组中出现的元素集。例如,
_.intersection([1, 2, 3], [4, 1])
> [1]
要将其转换为您正在寻找的布尔值,只需检查返回的数组是否为空。