如何检查一个列表是否包含另一个列表中的任何值?
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]
要将其转换为您要查找的布尔值,只需检查返回的数组是否为空即可。
使用 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]
要将其转换为您要查找的布尔值,只需检查返回的数组是否为空即可。