În acest post, vom vedea cum să găsim intersecția a două matrice în JavaScript. În ordinea cuvintelor, enumerați valorile comune prezente în fiecare dintre matrice.
de exemplu, intersecția matricelor și
este
.
matrice.prototip.filtru ()
ideea este de a verifica prezența fiecărui element al primei matrice în a doua matrice. 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(„elementele comune sunt:” + comune);
/*
ieșire: elementele comune sunt: 2,3
*/
|
pentru a verifica prezența unui anumit element într-o matrice, putem, de asemenea, să verificăm prezența unui anumit element într-o matrice utilizați cea mai recentă metodă includes()
care returnează o valoare booleană. Acest lucru este ilustrat mai jos:
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
*/
|
Notă Această soluție nu are ca rezultat valori unice în ieșire.
folosind setul
o altă soluție este de a converti matricea într-un ES6Set
și de a apela metodahas()
pentru a verifica prezența elementelor celeilalte matrice.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
intersecție funcție(primul, al doilea)
{
var s = set nou(al doilea);
reveni primul.filtru (item => s.has(item));
};
var first = ;
var second=;
var common = intersecție(prima, a doua);
consolă.log(„elementele comune sunt:” + comune);
/*
ieșire: elementele comune sunt: 2,3
*/
|
pentru a evita imprimarea duplicatelor în ieșire, puteți elimina elementele duplicate din prima matrice așa cum se arată mai jos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
intersecție funcție(primul, al doilea)
{
primul = set nou(primul);
al doilea = set nou(al doilea);
întoarcere .filtru (item = > în al doilea rând.are (articol));
};
var first=;
var second=;
var common = intersecție(prima, a doua);
consolă.log(„elementele comune sunt:” + comune);
/*
ieșire: elementele comune sunt: 2,3
*/
|
subliniere/Lodash
În cazul în care nu doriți să utilizați Set ca o structură de date intermediară pentru a găsi valori comune, codul poate fi simplificată folosind underscore sau lodash bibliotecă. 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);
consola.log („elementele comune sunt:” + comune);
/*
ieșire: elementele comune sunt: 2,3
*/
|
jQuery
cu jQuery, puteți puteți utiliza codul de mai jos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
const { jsdom } = necesită(„jsdom”);
const { window } = New jsdom();
var $ = necesită(„jquery”)(fereastră);
var first=;
var second=;
var secondNotFirst = $(al doilea).nu(primul); // – =
var comun = $(al doilea).nu(secondNotFirst); / / – =
consolă.log („elementele comune sunt:”);
pentru (var i = 0; i < comun.lungime; i++) {
consolă.log (comun);
}
/*
ieșire: elementele comune sunt:
2
3
*/
|
codul poate fi simplificat folosind jQuery filter()
metoda:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
const { jsdom } = necesită(„jsdom”);
const { window } = nou jsdom();
var $ = necesită(„jquery”)(fereastră);
var primul = ;
var al doilea = ;
var comun = $(al doilea).filtru (primul);
consolă.log („elementele comune sunt:”);
pentru (var i = 0; i < comun.lungime; i++) {
consolă.log(comun);
}
/*
ieșire: elementele comune sunt:
2
3
*/
|