我有2个阵列:
arr1 = [1,2,3];
arr2 = [2,3,4];
他们有两个共同的价值观。我想比较一下得到答案2。
有lodash
函数吗?
答案 0 :(得分:3)
是的,有一个名为intersection
的lodash函数。
因此,下面是您可以用来查找两个数组的公共值的长度的代码。
arr1 = [1,2,3]
arr2 = [2,3,4]
console.log(_.intersection(arr1, arr2).length);
答案 1 :(得分:1)
是的,您可以使用_.intersection并获取常用值
var arr1 = [1,2,3];
var arr2 = [2,3,4];
console.log(_.intersection(arr1, arr2));

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.5/lodash.min.js"></script>
&#13;
虽然它可以获得两个数组的常用值,但在这种情况下2,3不仅仅是2。
如果您想要的是常用值的数量,只需
_.size(_.intersection(arr1, arr2));
或者您可以创建自己的功能组成另外两个:
let numberOfCommonValues = _.flowRight(_.size, _.intersection);
console.log(numberOfCommonValues([1,2,3,4,5], [1,4,5]));
希望它有所帮助。
答案 2 :(得分:0)
我无法准确地告诉你是否有一个lodash函数可以做到这一点,但它似乎有点微不足道。
只需继续定义一个var,然后遍历其中一个数组,并将该值与另一个数值进行比较......
function countCommonalities(arr1, arr2) {
var counter = 0;
for(var i = 0; i < arr1.length; i++) {
for(var z = 0; z < arr2.length; z++) {
if(arr1[i] === arr2[z]) {
counter++;
}
}
}
return counter;
}