Buscar intersección de dos arrays en JavaScript

En este post, veremos cómo encontrar intersección de dos arrays en JavaScript. En palabras ordenadas, enumere los valores comunes presentes en cada una de las matrices.

Por ejemplo, la intersección de las matrices y es .Matriz

.prototipo.filter()

La idea es comprobar la presencia de cada elemento del primer array en el segundo 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(«Los elementos comunes son:» + común);
/*
Salida: Los elementos comunes son: 2,3
*/

para comprobar la presencia de ciertos elementos de una matriz, también podemos utilizar la última includes() método que devuelve un valor booleano. Esto se ilustra a continuación:

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: esta solución no resulte en valores únicos en la salida.

Usando Set

Otra solución es convertir la matriz en un método ES6 Set y llamar a su método has() para verificar la presencia de elementos de la otra matriz.

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

la función de intersección(primero, segundo)
{
var s = Conjunto nuevo(segundo);
regreso a primera.filtro (item = > s. has(item));
};
var first = ;
var second=;
var common = intersection(first, second);
consola.log(«Los elementos comunes son:» + común);
/*
Salida: Los elementos comunes son: 2,3
*/

Para evitar la impresión de duplicados en la salida, puede eliminar los elementos duplicados de la primera matriz como se muestra a continuación:

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

la función de intersección(primero, segundo)
{
primero = nuevo Conjunto(primero);
segundo = Conjunto nuevo(segundo);
volver .filtro(item => segundo.tiene (artículo));
};
var first=;
var second=;
var common = intersection (first, second);
consola.log(«Los elementos comunes son:» + común);
/*
Salida: Los elementos comunes son: 2,3
*/

Subrayado / Lodash

En caso de que no desee utilice Set como estructura de datos intermedia para encontrar valores comunes, el código se puede simplificar usando la biblioteca de guiones bajos o 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);
consola.log(«Los elementos comunes son:» + común);
/*
Salida: Los elementos comunes son: 2,3
*/

jQuery

Con jQuery, usted puede utilizar el código siguiente:

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 { ventana } = new JSDOM();
var $ = require(«jquery»)(ventana);
var first=;
var second=;
var secondNotFirst =second (second).not (primero); / / – =
var common = second(segundo).not (secondNotFirst); / / – =
consola.log(«Los elementos comunes son:»);
for (var i = 0; i < común.length; i++) {
consola.log(común);
}
/*
Salida: Los elementos comunes son:
2
3
*/

El código se puede simplificar 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 { ventana } = new JSDOM();
var $ = require(«jquery»)(ventana);
var primero = ;
var second=;
var common = second(second).filter (first);
consola.log(«Los elementos comunes son:»);
for (var i = 0; i < común.length; i++) {
consola.log(común);
}
/*
Salida: Los elementos comunes son:
2
3
*/

Deja una respuesta

Tu dirección de correo electrónico no será publicada.