当前位置: 首页 > 知识库问答 >
问题:

在JavaScript中计算两个数组交集[duplicate]

孔征
2023-03-14
var arr1 = ["mike", "sue", "tom", "kathy", "henry"]; //arr1.length = 5
var arr2 = ["howey", "jim", "sue", "jennifer", "kathy", "hank", "alex"]; //arr2.length = 7

我如何找到两个数组共有的值?在这种情况下,应返回“sue”“kathy”

共有1个答案

欧阳俊逸
2023-03-14

下面是基于array.prototype.filter的交集函数

function intersect(a, b) {
    var t;
    if (b.length > a.length) t = b, b = a, a = t; // indexOf to loop over shorter
    return a.filter(function (e) {
        return b.indexOf(e) > -1;
    });
}

var arr1 = ["mike", "sue", "tom", "kathy", "henry"];
    arr2 = ["howey", "jim", "sue", "jennifer", "kathy", "hank", "alex"];

intersect(arr1, arr2); // ["sue", "kathy"]

您可能还需要考虑以下事项

var arr1 = ['sue', 'sue', 'kathy'],
    arr2 = ['kathy', 'kathy', 'sue'];

上面现在给出了[“Sue”,“Sue”,“Kathy”]。如果你不想重复,你可以做一个进一步的筛选。这也将使结果标准化。即。

return a
    .filter(/* .. */) // same as before
    .filter(function (e, i, c) { // extra step to remove duplicates
        return c.indexOf(e) === i;
    });
 类似资料:
  • 假设我有这两个数组: 如何从ARR2获取arr1中的出现次数。两个数组中的所有字符串都是唯一的,不会有重复的。显然,在这个具体案例中的结果是2。 我试过的: 问题是我必须在很少的情况下使用它,并且变量总是在变化,这取决于您单击的内容,而您不能依赖它的值。 提前谢谢!

  • 问题内容: 说,有两个哈希集,如何计算它们的交集? 问题答案: 使用以下方法: 如果要保留集合,请创建一个新集合以保存交集: 该的的说,这正是你想要的: 仅保留此集合中包含在指定集合中的元素(可选操作)。换句话说,从该集合中删除所有未包含在指定集合中的元素。如果指定的集合也是一个集合,则此操作将有效地修改此集合,以使其值为两个集合的交集。

  • 本文向大家介绍JS计算两个数组的交集、差集、并集、补集(多种实现方式),包括了JS计算两个数组的交集、差集、并集、补集(多种实现方式)的使用技巧和注意事项,需要的朋友参考一下 方法一:最普遍的做法 使用 ES5 语法来实现虽然会麻烦些,但兼容性最好,不用考虑浏览器 JavaScript 版本。也不用引入其他第三方库。 1,直接使用 filter、concat 来计算 2,对 Array 进行扩展

  • 本文向大家介绍C程序在两个数组上执行交集运算,包括了C程序在两个数组上执行交集运算的使用技巧和注意事项,需要的朋友参考一下 交集运算 如果数组1 = {1,2,3,4,6}   数组2 = {1,2,5,6,7} 然后,array1和array 2的交集是 一组公共元素称为交集。 交集的逻辑如下- 程序 以下是在两个数组上执行交集运算的C程序- 输出结果 执行以上程序后,将产生以下结果-

  • 我有一个问题,在java中找到两个数组之间的区别,我的例子就像假设我们有两个数组。数组和数组。我想有两个结果第一个结果是一个数组,它从数组“A”中找到丢失的对象,第二个结果是一个数组,它在数组“B”中找到添加的对象。第一个结果应类似于,第二个结果类似于。 感谢您的评论。

  • 问题内容: 假设我有个数组,另一个数组。我如何得到结果数组? 问题答案: 如果您不需要保留订单,并考虑和保持一致: