如何检查一个列表是否包含另一个列表中的任何值?

How can I check if a list contains any value from another list?

使用 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); }));

使用_.intersection函数,像这样

var isInList = _.intersection([1, 2, 3], [4, 1]).length !== 0;

你可能想要 _.intersection。这 returns 出现在两个数组中的元素集。例如,

_.intersection([1, 2, 3], [4, 1])
> [1]

要将其转换为您要查找的布尔值,只需检查返回的数组是否为空即可。