-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy path4-sets.js
More file actions
27 lines (18 loc) · 620 Bytes
/
Copy path4-sets.js
File metadata and controls
27 lines (18 loc) · 620 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'use strict';
const union = (s1, s2) => new Set([...s1, ...s2]);
const intersection = (s1, s2) => new Set(
[...s1].filter((v) => s2.has(v))
);
const difference = (s1, s2) => new Set(
[...s1].filter((v) => !s2.has(v))
);
const complement = (s1, s2) => difference(s2, s1);
// Usage
const cities1 = new Set(['Beijing', 'Kiev']);
const cities2 = new Set(['Kiev', 'London', 'Baghdad']);
const operations = [union, intersection, difference, complement];
const results = operations.map((operation) => ({
[operation.name]: operation(cities1, cities2)
}));
console.dir({ cities1, cities2 });
console.dir(results);