我正在使用mongodb和nodejs编写应用程序。我有一个'学生'集合,其中包含一个列表,其中包含所有课程的列表(课程ID,指的是'课程'集合中的文档),特定学生已经学习。
我有2名学生,StudentA和StudentB。我想看看这两名学生是否参加了任何共同课程。
我已经从mongodb检索了studentA和studentB文件。我想在node.js app。
中找到这两个数组之间的交集我想到的一种方法是通过第一个数组,创建一个以objectid为键的哈希映射。然后通过第二个数组并尝试将值递增1.最后,所有值为1的条目都是相交元素。
有更好的方法吗?
请告诉我。
-sU
答案 0 :(得分:14)
答案 1 :(得分:7)
以下是
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];
c
将包含此末尾的交集。