2020. november 20., péntek

Halmazok js

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 }