Znajdź przecięcie dwóch tablic w JavaScript

w tym poście zobaczymy, jak znaleźć przecięcie dwóch tablic w JavaScript. W kolejności słów, lista wspólnych wartości obecnych w każdej z tablic.

na przykład przecięcie tablic I to.

Array.prototyp.filter()

chodzi o to, aby sprawdzić obecność każdego elementu pierwszej tablicy w drugiej tablicy. 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(„wspólne elementy to:” + wspólne);
/*
Wyjście: wspólne elementy to: 2,3
*/

aby sprawdzić obecność określonego elementu w tablicy, możemy użyj również najnowszej metody includes(), która zwraca wartość logiczną. Jest to zilustrowane poniżej:

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

Uwaga To rozwiązanie nie powoduje unikalnych wartości na wyjściu.

używając Set

innym rozwiązaniem jest konwersja tablicy do ES6Set I wywołanie jejhas() metoda sprawdzająca obecność elementów drugiej tablicy.

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

przecięcie funkcji(pierwszy, drugi)
{
var s = nowy zestaw(drugi);
powrotem pierwszy.Filtr(Element = s.ma(element));
};
var pierwszy = ;
var second=;
var common=;
konsola.log(„wspólne elementy to:” + wspólne);
/*
Wyjście: wspólne elementy to: 2,3
*/

Aby uniknąć drukowania duplikatów na wyjściu, można usunąć duplikaty elementów z pierwszej tablicy, jak pokazano poniżej:

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

przecięcie funkcji(pierwszy, drugi)
{
pierwszy = nowy zestaw(pierwszy);
drugi = nowy zestaw(drugi);
powrót .Filtr (Element = drugi.ma (element));
};
var first=;
var second=;
var common=;
konsola.log („elementy wspólne są:” + wspólne);
/*
wyjście: elementy wspólne są: 2,3
*/

podkreślenie/Lodash

W przypadku, gdy nie nie chcemy używać set jako pośredniej struktury danych do wyszukiwania wspólnych wartości, kod można uprościć za pomocą biblioteki underscore lub 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);
konsola.log(„wspólne elementy to:” + wspólne);
/*
Wyjście: wspólne elementy to: 2,3
*/

jQuery

z jQuery, możesz użyć poniższego kodu:

kod można uprościć za pomocą jQueryfilter() metoda:

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

const { JSDOM } = wymagane(„jsdom”);
const { okno } = nowy JSDOM();
var $ = wymagane(” jquery”)(okno);
var first=;
var second=;
var secondNotFirst = $(second).not(first); / / – =
var common = $(second).not (secondNotFirst); / / – =
konsola.log(„wspólnymi elementami są:”);
for (var i = 0; i < common.length; i++) {
konsola.log (common);
}
/*
Wyjście: wspólne elementy to:
2
3
*/
const { JSDOM } = żądania(„jsdom”);
const { okno } = nowy JSDOM();
var $ = żądania(„jquery”)(okno);
najpierw opcje = ;
var drugi=;
var ogólny = $(drugi).filtr (pierwszy);
console.log („elementy wspólne:”);
dla (var i = 0; i ogólne.długość; i++) {
console.log (ogólne);
}
/*
wyjście: elementy wspólne:
2
3
* /

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.