Trova intersezione di due array in JavaScript

In questo post, vedremo come trovare intersezione di due array in JavaScript. In parole d’ordine, elencare i valori comuni presenti in ciascuno degli array.

Ad esempio, l’intersezione degli arraye.

Matrice.prototipo.filter ()

L’idea è di verificare la presenza di ciascun elemento del primo array nel secondo array. 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(“Gli elementi comuni sono:” + comune);
/*
Output: Gli elementi comuni sono: 2,3
*/

per verificare la presenza certa di un elemento in un array si può anche usare l’ultima includes() metodo che restituisce un valore booleano. Questo è illustrato di seguito:

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

Nota questa soluzione non produce valori univoci nell’output.

Utilizzando Set

Un’altra soluzione è quella di convertire l’array in un ES6Set e chiamare il suohas() metodo per verificare la presenza di elementi dell’altro array.

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

funzione di intersezione(primo, secondo)
{
var s = new Insieme(secondo);
prima di ritorno.filtro (item= > s.has(item));
};
var first = ;
var second=;
var common = intersection (first, second);
console.log(“Gli elementi comuni sono:” + comune);
/*
Output: Gli elementi comuni sono: 2,3
*/

Per evitare la stampa dei duplicati in uscita, è possibile rimuovere gli elementi duplicati dal primo array, come illustrato di seguito:

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

funzione di intersezione(primo, secondo)
{
primo = new Insieme(primo);
secondo = new Insieme(secondo);
ritorno .filtro(item => secondo.ha(articolo));
};
var first=;
var second=;
var common = intersection(first, second);
console.log(“elementi Comuni sono:” + comune);
/*
Output: elementi Comuni sono: 2,3
*/

Sottolineatura/Lodash

se non si desidera utilizzare Impostato come un intermedio struttura di dati per la ricerca di valori comuni, il codice può essere semplificato utilizzando un carattere di sottolineatura o lodash biblioteca. 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(“Gli elementi comuni sono:” + comune);
/*
Output: Gli elementi comuni sono: 2,3
*/

jQuery

Con jQuery, è possibile utilizzare il codice riportato di seguito:

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 { finestra } = new JSDOM();
var $ = require(“jquery”)(finestra);
var first=;
var second=;
var secondNotFirst = second(secondo).not(primo); // – =
var common = second (secondo).non(secondNotFirst); / / – =
console.log(“Gli elementi comuni sono:”);
for (var i = 0; i < common.lunghezza; i++) {
console.log (common);
}
/*
Output: Gli elementi comuni sono:
2
3
*/

Il codice può essere semplificato utilizzando jQuery filter() metodo:

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

const { JSDOM } = require(“jsdom”);
const { finestra } = new JSDOM();
var $ = require(“jquery”)(finestra);
var primo = ;
var second=;
var common = second(second).filtro(primo);
console.log(“Gli elementi comuni sono:”);
for (var i = 0; i < common.lunghezza; i++) {
console.log(comune);
}
/*
Output: Gli elementi comuni sono:
2
3
*/

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.