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