In this post, we will see how to find intersection of two arrays in JavaScript. Em palavras de ordem, enumere os valores comuns presentes em cada uma das matrizes.
Por exemplo, o cruzamento de matrizes e
.
Array.prototipo.filtro ()
a idéia é verificar a presença de cada elemento da primeira matriz na segunda matriz. 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(“Os elementos comuns são:” + comum);
/*
Saída: Os elementos comuns são: 2,3
*/
|
Para verificar a presença de determinado elemento em uma matriz, também podemos usar o mais recente includes()
método que retorna um valor booleano. Isto é ilustrado abaixo:
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
*/
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
função de intersecção(primeiro, segundo)
{
var s = novo(segundo);
retorno em primeiro lugar.filtro (item => S. has(item));
};
var first = ;
var second=;
var common = intersection(first, second);
console.log(“Os elementos comuns são:” + comum);
/*
Saída: Os elementos comuns são: 2,3
*/
|
Para evitar a impressão de duplicatas na saída, você pode remover itens duplicados da primeira matriz, como mostrado abaixo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
função de intersecção(primeiro, segundo)
{
primeiro = novo(primeira);
segundo = novo(segundo);
retornar .filtro (item => segundo.tem (item);
};
var first=;
var second=;
var common = intersection(first, second);
console.log(“elementos Comuns são:” + comum);
/*
Saída: elementos Comuns são: 2,3
*/
|
Sublinhado/Lodash
No caso de você não quiser usar o Conjunto como um intermediário estrutura de dados para encontrar valores comuns, o código pode ser simplificada usando o carácter de sublinhado ou 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);
consola.log(“Os elementos comuns são:” + comum);
/*
Saída: Os elementos comuns são: 2,3
*/
|
jQuery
Com o jQuery você pode usar o código abaixo:
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 { janela } = new JSDOM();
var $ = require(“jquery”)(janela);
var first=;
var second=;
var secondNotFirst = $(second).not(first); // – =
var common = $(second).not (secondNotFirst); // – =
consola.log (“os elementos comuns são:”);
para (var i = 0; i common.length; i++) {
consola.log (common);
}
/*
saída: os elementos comuns são::
2
3
*/
|
O código pode ser simplificada usando jQuery filter()
método:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
const { JSDOM } = require(“jsdom”);
const { janela } = new JSDOM();
var $ = require(“jquery”)(janela);
var primeiro = ;
var second=;
var common = $(second).Filtro (primeiro);
consola.log (“os elementos comuns são:”);
para (var i = 0; i common.length; i++) {
consola.log(comum);
}
/*
Saída: Os elementos comuns são:
2
3
*/
|