Dans cet article, nous verrons comment trouver l’intersection de deux tableaux en JavaScript. Dans les mots d’ordre, énumérez les valeurs communes présentes dans chacun des tableaux.
Par exemple, l’intersection des tableaux et
est
.Tableau
.prototype.filter()
L’idée est de vérifier la présence de chaque élément du premier tableau dans le second tableau. 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(« Les éléments communs sont: » +common);
/*
Sortie: Les éléments communs sont: 2,3
*/
|
Pour vérifier la présence de certains éléments dans un tableau, nous pouvons également utiliser la dernière méthode includes()
qui renvoie une valeur booléenne. Ceci est illustré ci-dessous:
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
*/
|
Remarque cette solution n’entraîne pas de valeurs uniques dans la sortie.
En utilisant Set
Une autre solution consiste à convertir le tableau en une méthode ES6 Set
et à appeler sa méthode has()
pour vérifier la présence d’éléments de l’autre tableau.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
intersection de fonction (première, deuxième)
{
var s= nouvel ensemble (deuxième);
retourne en premier.je n’ai pas besoin d’ajouter un élément de filtre (item=> s.has(item));
};
var first = ;
var second =;
var common= intersection(premier, deuxième);
console.log(« Les éléments communs sont: » +common);
/*
Sortie: Les éléments communs sont: 2,3
*/
|
Pour éviter d’imprimer des doublons dans la sortie, vous pouvez supprimer les éléments en double de la premier tableau comme indiqué ci-dessous:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
intersection de fonction (premier, deuxième)
{
first= nouvel ensemble (premier);
second= nouvel ensemble (deuxième);
return.filter(item=> seconde.a (article));
};
var first =;
var second =;
var common = intersection(premier, deuxième);
console.log(« Les éléments communs sont: » + commun);
/*
Sortie: Les éléments communs sont: 2,3
*/
|
Underscore/Lodash
Au cas où vous ne voudriez pas utilisez Set comme structure de données intermédiaire pour trouver des valeurs communes, le code peut être simplifié à l’aide de underscore ou de la bibliothèque lodash. 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);
console.log(« Les éléments communs sont : » +common);
/*
Sortie : Les éléments communs sont : 2,3
*/
|
jQuery
Avec jQuery, vous pouvez utilisez le code ci-dessous:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
const {JSDOM} = require(« jsdom »);
const {JSDOM} = require(« jsdom »);
iv J’ai besoin d’un nouveau JSDOM(); var var= require(« jquery »)(window);
var first =;
var second =;
var secondNotFirst =second(second).pas (premier); // -=
var common =second(deuxième).pas (secondNotFirst); //-=
console.log(« Les éléments communs sont: »);
pour (var i= 0; i < commun.length; i++) {
console.log(common);
}
/*
Sortie : Les éléments communs sont:
2
3
*/
|
Le code peut être simplifié en utilisant la méthode jQuery filter()
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
const {JSDOM} = require(« jsdom »);
const {window} = nouveau JSDOM J’ai besoin d’une fenêtre de type « jquery » ();
var first= require(« jquery »)(window);
var first = ;
var second =;
var common =second(second).filter(premier); console
.log(« Les éléments communs sont: »);
pour (var i= 0; i < commun.length; i++) {
console.log(common);
}
/*
Sortie: Les éléments communs sont :
2
3
*/
|