i dette indlæg vil vi se, hvordan man finder skæringspunktet mellem to arrays i JavaScript. I rækkefølge ord, liste ud de fælles værdier til stede i hver af arrays.
for eksempel skæringspunktet mellem arrays og
er
.
Array.prototype.filter ()
ideen er at kontrollere tilstedeværelsen af hvert element i det første array i det andet 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 (“de fælles elementer er:” + fælles);
/*
Output: de fælles elementer er: 2,3
*/
|
for at kontrollere tilstedeværelsen af et bestemt element i et array, skal vi kan også bruge den nyesteincludes()
metode, der returnerer en boolsk værdi. Dette er illustreret nedenfor:
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
*/
|
Bemærk Denne løsning resulterer ikke i unikke værdier i output.
brug af Set
en anden løsning er at konvertere arrayet til en ES6Set
og kalde detshas()
metode til at kontrollere tilstedeværelsen af elementer i det andet array.
1
2
3
4
5
6
8
9
10
11
12
13
14
15
|
funktionskryds(første, anden)
{
var S = nyt sæt(andet);
returner først.filter (item = > s. has(item));
};
var first = ;
var sekund=;
var fælles = kryds(første, anden);
konsol.log(“de fælles elementer er:” + fælles);
/*
Output: de fælles elementer er: 2,3
*/
|
for at undgå at udskrive dubletter i output kan du fjerne duplikatelementer i elementer fra det første array som vist nedenfor:
1
2
3
4
5
6
8
9
10
11
12
13
14
15
16
|
funktionskryds(første, anden)
{
første = nyt sæt(første);
andet = nyt sæt(andet);
return .filter (item = > sekund.har(vare));
};
var first=;
var second=;
var common = kryds(første, anden);
konsol.log(“fælles elementer er:” + fælles);
/*
Output: fælles elementer er: 2,3
*/
|
understregning/Lodash
i tilfælde af at du ønsker ikke at bruge Set som en mellemliggende datastruktur til at finde fælles værdier, kan koden forenkles ved hjælp af understregning eller lodash bibliotek. 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);
konsol.log(“de fælles elementer er:” + fælles);
/*
Output: de fælles elementer er: 2,3
*/
|
med JV, du kan bruge koden nedenfor:
1
2
3
4
5
6
8
9
10
11
12
13
14
15
16
17
18
20
|
const { jsdom } = Kræv(“jsdom”);
const { vindue } = nyt jsdom ();
var $ = Kræv(“forespørgsel”)(vindue);
var first=;
var second = ;
var secondNotFirst = $(second).ikke (første); / / – =
var common = $(anden).ikke(secondNotFirst); // – =
konsol.log (“de fælles elementer er:”);
for (var i = 0; i < almindelig.længde; i++) {
konsol.log (fælles);
}
/*
Output: de fælles elementer er:
2
3
* /
|
koden kan forenkles ved hjælp af jfork filter()
metode:
1
2
3
4
5
6
8
9
10
11
12
13
14
15
16
17
18
|
const { jsdom } = Kræv(“jsdom”);
const { vindue } = ny jsdom ();
var $ = Kræv(“forespørgsel”)(vindue);
var first = ;
var second=;
var common = $(second).filter (først);
konsol.log (“de fælles elementer er:”);
for (var i = 0; i < almindelig.længde; i++) {
konsol.log(almindelig);
}
/ *
Output: de fælles elementer er:
2
*/
|