4

重複の可能性:
JavaScript での配列交差の最も単純なコード

Mongodb と Nodejs を使用してアプリを作成しています。特に、特定の学生が受講したすべてのコース (「コース」コレクション内のドキュメントを参照するコース ID) のリストを含む配列を含む「学生」コレクションがあります。

StudentA と StudentB の 2 人の生徒がいます。この 2 人の学生が共通のコースを受講したかどうかを確認したい。

既に Mongodb から StudentA と StudentB のドキュメントを取得しています。Node.js アプリでこれら 2 つの配列の交点を見つけたいです。

私が考えた 1 つのアプローチは、最初の配列を調べて、objectid をキーとしてハッシュ マップを作成することでした。次に、2 番目の配列を調べて、値を 1 増やしてみます。最終的に、値が 1 のすべてのエントリが交差要素になります。

より良いアプローチはありますか?

4

2 に答える 2

14

Underscore.jsはn 個の配列の交点を計算できます。したがって:

_(a).intersection(b)

また

_.intersection(a, b)
于 2012-05-03T03:15:35.313 に答える
9

方法は次のとおりです

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これの最後に交差点が含まれます。

于 2012-05-03T03:02:30.067 に答える