如何检查列表是否包含其他列表中的任何值?

时间:2015-08-19 17:51:29

标签: javascript underscore.js

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

2 个答案:

答案 0 :(得分:4)

使用_.intersection功能,就像这样

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

答案 1 :(得分:1)

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

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

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