găsiți intersecția a două matrice în JavaScript

Î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
*/

Lasă un răspuns

Adresa ta de email nu va fi publicată.