2012-05-03 98 views
2

可能重複:
Simplest code for array intersection in javascript查找相交

我寫與mongodb的和的NodeJS的應用程序。我有一個'學生'集合,其中包含一個包含所有課程列表(課程編號,指的是「課程」集合中的文檔)列表。

我有2名學生,StudentA和StudentB。我想看看這兩個學生是否參加過任何普通課程。

我已經從mongodb中檢索到studentA和studentB文檔。我想在node.js應用程序中找到這兩個數組之間的交集。

我想到的一種方法是穿過第一個數組,創建一個以objectid爲關鍵的哈希映射。然後通過第二個數組並嘗試將值增加1.最後,值爲1的所有條目都是相交元素。

有沒有更好的方法?

請讓我知道。

-sU

+2

我在過去的幾天裏看到了這個問題的兩倍,是有一個CS類移交了這一點,作爲一個任務? – dwerner

回答

6

下面是如何

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將包含在路口本月底。

+0

那就是我在找的東西。謝謝! –

+0

對於更快的版本,請確保在較短的陣列上運行'for'循環。 – slowpoison