In dit bericht zullen we zien hoe we snijpunt van twee arrays in JavaScript kunnen vinden. In volgorde woorden, een lijst van de gemeenschappelijke waarden aanwezig in elk van de arrays.
bijvoorbeeld, het snijpunt van arrays en
is
.
Array.prototype.filter ()
het idee is om de aanwezigheid van elk element van de eerste array in de tweede array te controleren. 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(“the common elements are:” + common);
/*
uitvoer: de common elements zijn: 2,3
*/
|
Om de aanwezigheid van een bepaald element in een array te controleren, kunnen we ook de laatste includes()
methode die een booleaanse waarde retourneert. Dit wordt hieronder geïllustreerd:
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
* /
|
merk op dat deze oplossing niet resulteert in unieke waarden in de uitvoer.
gebruikmakend van Set
een andere oplossing is om de array om te zetten in een ES6 Set
en zijn has()
methode aan te roepen om de aanwezigheid van elementen van de andere array te controleren.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
snijpunt(eerste -, tweede -)
{
var s = nieuwe(tweede);
terug eerste.filter(item => s.has(item));
};
var first = ;
var second=;
var common = intersection (first, second);
console.log(“the common elements are:” + common);
/*
uitvoer: de gemeenschappelijke elementen zijn: 2,3
*/
|
om het afdrukken van duplicaten in de uitvoer te voorkomen, kunt u dubbele items uit de eerste array verwijderen zoals getoond onder:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
snijpunt(eerste -, tweede -)
{
eerste = nieuwe Set(eerste);
tweede = nieuwe(tweede);
terug .filter (item => seconde.heeft (item));
};
var first=;
var second=;
var common = intersection (first, second);
console.log(“Common elements are:” + common);
/*
uitvoer: Common elements are: 2,3
*/
|
Underscore/Lodash
in het geval u geen Set wilt gebruiken als een tussenliggende gegevensstructuur voor het vinden van gemeenschappelijke waarden, kan de code worden vereenvoudigd met behulp van underscore of lodash bibliotheek. 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 (“the common elements are:” + common);
/*
uitvoer: de common elements zijn: 2,3
* /
|
jQuery
met jQuery kunt u de onderstaande code gebruiken:
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 { window } = nieuwe JSDOM();
var $ = require(“jquery”)(venster);
var first=;
var second=;
var secondNotFirst = $(second).not (first); / / – =
var common = $(second).niet (secondNotFirst); / / – =
console.log (“the common elements are:”);
voor (var i = 0; i < common.length; i++) {
console.log (common);
}
/*
uitvoer: de gemeenschappelijke elementen zijn:
2
3
* /
|
de code kan worden vereenvoudigd met behulp van jQuery filter()
methode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
const { JSDOM } = require(“jsdom”);
const { window } = nieuwe JSDOM();
var $ = require(“jquery”)(window);
var eerste = ;
var second=;
var common = $(second).filter (first);
console.log (“the common elements are:”);
voor (var i = 0; i < common.length; i++) {
console.log(common);
}
/*
uitvoer: de gemeenschappelijke elementen zijn:
2
3
* /
|