1. Létrehozás tömbből:
const setA = new Set(['a', 'b', 'd']);
tömbbé alakítás:
const arrA = [...setA];
... = beillesztés operátor
Létrehozás sztringből:
const setB = new Set('abd')
2. új elem hozzáadása:
setA.add('e');
3. elem törlése:
setA.delete('b');
összes elemé:
set.clear();
4. eleme-e lekérdezése:
setA.has('a');
5. elemek száma:
setA.size
6. elemek kiíratása:
for (const x of setA) {console.log(x);}
setA.forEach(x => console.log(x));
setA.forEach(x => console.log(`${x}`));
et items = setA.values();
console.log(items.next().done);
console.log(items.next().value);
7. Műveletek:
A. Unió:
const sA = new Set([1,2,3]);
const sB = new Set([4,3,2]);
const sU = new Set([...sA, ...sB]);
B. Metszet:
const sM = new Set([...sA].filter(x => sB.has(x)));
C. Különbség:
const sK = new Set([...sA].filter(x => !sB.has(x)));
8. Bizonyos tulajdonságú részhalmaz:
const sA = new Set([1, 2, 3, 4, 5]);
const sR = new Set([...sA].filter(x => (x % 2) === 0));
9. Halmazok egyenlősége:
const egyenlo_e = ([...sA].sort().join() === [...sB].sort().join())
10. Részhalmaz:
const reszhalmaza_e = sB.every(val => sA.includes(val));
Összes részhalmaz:
var set = [1,2,3];
var n = set.length;
var allSubsets = [];
for (var i=0; i<(Math.pow(2,n)); i++) {
var subset = [];
for(var j=0; j<n; j++) {
if( (i & (1<<j)) > 0 )
subset.push(set[j]);
}
allSubsets.push(subset);
}
console.log(allSubsets);
Permutáció (rekurzióval):
let findPermutations = (string) => {
if (!string || typeof string !== "string"){
return "Please enter a string"
} else if (string.length < 2 ){
return string
}
let permutationsArray = []
for (let i = 0; i < string.length; i++){
let char = string[i]
let remainingChars = string.slice(0, i) + string.slice(i + 1, string.length)
for (let permutation of findPermutations(remainingChars)){
permutationsArray.push(char + permutation) }
}
return permutationsArray
}