在node.js中查找2个数组的交集

Sil*_*ser 4 javascript mongodb node.js

可能重复:
javascript中数组交集的最简单代码

我正在用mongodb和nodejs编写一个应用程序.我有一个'学生'集合,其中包含一个列表,其中列出了所有课程(课程ID,指的是'课程'集合中的文档),特定学生已经学习.

我有2名学生,StudentA和StudentB.我想看看这两个学生是否参加过任何共同课程.

我已经从mongodb检索了studentA和studentB文档.我想在node.js应用程序中找到这两个数组之间的交集.

我想到的一种方法是通过第一个数组,创建一个以objectid为键的哈希映射.然后通过第二个数组并尝试将值递增1.最后,值为1的所有条目都是相交元素.

有更好的方法吗?

请告诉我.

-su

slo*_*son 8

这是如何做

a=[1,2,3,4];
b=[3,4,5];
c=[];
j=0;
for (var i=0; i < a.length; ++i)
    if (b.indexOf(a[i]) != -1)
        c[j++] = a[i];
Run Code Online (Sandbox Code Playgroud)

c 将包含此末尾的交集.