Finden Schnittpunkt von zwei Arrays in JavaScript

In diesem Beitrag werden wir sehen, wie Schnittpunkt von zwei Arrays in JavaScript zu finden. Listen Sie in Ordnungswörtern die gemeinsamen Werte auf, die in jedem der Arrays vorhanden sind.

Zum Beispiel ist der Schnittpunkt von Arrays und .

Array.Prototyp.filter()

Die Idee ist, das Vorhandensein jedes Elements des ersten Arrays im zweiten Array zu überprüfen. This can be easily done using indexOf() method with the filter() method in following manner:

1
2
3
4
5
6
7
8
9

var first = ;
var second = ;
var common = first.filter(x => second.indexOf(x) !== -1)
console.log(„Die gemeinsamen Elemente sind: “ + common);
/*
Ausgabe: Die gemeinsamen Elemente sind: 2,3
*/

Um das Vorhandensein eines bestimmten Elements in einem Array zu überprüfen, können wir auch die neueste includes() Methode, die einen booleschen Wert zurückgibt. Dies ist unten dargestellt:

1
2
3
4
5
6
7
8
9

var first = ;
var second = ;
var common = first.filter(x => second.includes(x))
console.log(„The common elements are: “ + common);
/*
Output: The common elements are: 2,3
*/

Hinweis Diese Lösung führt nicht zu eindeutigen Werten in der Ausgabe.

Mit Set

Eine andere Lösung besteht darin, das Array in ein ES6 Set zu konvertieren und seine has() -Methode aufzurufen, um das Vorhandensein von Elementen des anderen Arrays zu überprüfen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Funktion Schnittpunkt(erste, zweite)
{
var s = new Set(zweite);
return first.filter(Element => s.hat(Element));
};
var zuerst = ;
var second = ;
var common = Kreuzung(erste, zweite);
Konsole.log(„Die gemeinsamen Elemente sind: “ + common);
/*
Ausgabe: Die gemeinsamen Elemente sind: 2,3
*/

Um das Drucken von Duplikaten in der Ausgabe zu vermeiden, können Sie doppelte Elemente wie unten gezeigt aus dem ersten Array entfernen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

funktion kreuzung (erste, zweite)
{
erste = neue Set(erste);
zweite = neue Set (zweite);
rückkehr.filter(Element =>).hat(Artikel));
};
var first = ;
var second = ;
var common = Kreuzung(erste, zweite);
Konsole.log(„Gemeinsame Elemente sind: “ + common);
/*
Ausgabe: Gemeinsame Elemente sind: 2,3
*/

Unterstrich/Lodash

Falls Sie Set nicht als Zwischendatenstruktur zum Auffinden gemeinsamer Werte verwenden möchten kann der Code mit Unterstrich oder Lodash-Bibliothek vereinfacht werden. The following code example prints the unique values that are present in given arrays using intersection() method.

1
2
3
4
5
6
7
8
9
10
11

var _ = require(‚lodash‘); // or underscore
var first = ;
var second = ;
var common = _.intersection(first, second);
Konsole.log(„Die gemeinsamen Elemente sind: “ + common);
/*
Ausgabe: Die gemeinsamen Elemente sind: 2,3
*/

jQuery

Mit jQuery können Sie den folgenden Code verwenden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

const { JSDOM} = erfordern(„jsdom“);
const { fenster} = neue JSDOM();
var $ = erfordern(„jquery“)(fenster);
var erste = ;
var zweite = ;
var secondNotFirst = $(zweite).nicht(erste); // – =
var common = $(zweite).not(secondNotFirst); // – =
Konsole.log(„Die gemeinsamen Elemente sind:“);
for (var i = 0; i < common.length; i++) {
Konsole.log(common);
}
/*
Ausgabe: Die gemeinsamen Elemente sind:
2
3
*/

Der Code kann mit jQuery vereinfacht werden filter():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

const { JSDOM} = erfordern („jsdom“);
const { fenster} = neue JSDOM();
var $ = erfordern(„jquery“)(fenster);
var erste = ;
var second = ;
var common = $(Sekunde).filter(zuerst);
Konsole.log(„Die gemeinsamen Elemente sind:“);
for (var i = 0; i < common.length; i++) {
Konsole.log(common);
}
/*
Ausgabe: Die gemeinsamen Elemente sind:
2
3
*/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.