π Set κ°μ²΄λ μ€λ³΅λμ§ μλ μ μΌν κ°λ€μ μ§ν©
| κ΅¬λΆ | λ°°μ΄ | Set | 
|---|
| λμΌν κ°μ μ€λ³΅νμ¬ ν¬ν¨ν  μ μλ€. | O | X | 
| μμ μμμ μλ―Έκ° μλ€. | O | X | 
| μΈλ±μ€λ‘ μμμ μ κ·Όν  μ μλ€. | O | X | 
βΒ Set
- μμ κ°μ νΉμ§μ νμ©νμ¬ μ€λ³΅ κ°μ μμ κ±°λ κ΅μ§ν©, ν©μ§ν©, μ°¨μ§ν©, μ¬μ§ν© λ±μ ꡬνν  λ μ μ©νκ² μ°μ
 
βοΈΒ new Set
set μμ±μ ν¨μλ‘ Set κ°μ²΄ μμ± 
const emptySet = new Set();
console.log(emptySet); 
const set = new Set([1,2,3,3]);
console.log(set); 
const only = (arr) => [...new Set(arr)];
console.log(only([1, 1, 2, 3, 5, 5, 3])); 
βοΈΒ set.size
- set κ°μ²΄μ μμ κ°μλ₯Ό νμΈ
 
const set = new Set([1, 2, 3]);
console.log(set.size); 
βοΈΒ set.add()
- set κ°μ²΄μ μμλ₯Ό μΆκ°
 
const set = new Set();
set.add(1);
console.log(set); 
set.add(1).add(2).add(3).add(1) 
βοΈΒ set.has()
- set κ°μ²΄μ νΉμ  μμκ° μλμ§ νμΈνμ¬ λΆλ¦¬μΈ κ° λ°ν
 
const set = new Set([1, 2, 3]);
set.has(2); 
set.has(6); 
βοΈΒ set.delete()
- set κ°μ²΄μμ νΉμ  μμλ₯Ό μμ  ν μμ  μ±κ³΅ μ¬λΆμ λΆλ¦¬μΈ κ°μ λ°ν
 
const set = new Set([1, 2, 3]);
console.log(set.delete(1)); 
console.log(set); 
βοΈΒ set.clear()
- set κ°μ²΄μ λͺ¨λ  μμλ₯Ό μΌκ΄ μμ  ν μΈμ λ 
undefined λ°ν 
const set = new Set([1, 2, 3]);
set.clear();
console.log(set); 
βοΈΒ μ΄ν°λ¬λΈ !
for ... of λ¬ΈμΌλ‘ μν κ°λ₯ 
- μ€νλ λ λ¬Έλ² λμ κ°λ₯
 
- ꡬ쑰 λΆν΄ ν λΉ κ°λ₯
 
const set = new Set([1, 2, 3]);
for ( value of set ){
	console.log(value); 
}
console.log([...set]); 
const [ unique, ...rest ] = set
console.log(unique, rest); 
β¨Β μ§ν©
βοΈΒ κ΅μ§ν©: κ³΅ν΅ μμλ‘ κ΅¬μ±
const A = [1, 2, 3];
const B = [1, 3, 6];
const intersection = (a, b) => {
  const setA = new Set(a);
  const setB = new Set(b);
  const interArr = [];
  
  for ( value of setA ){
    if(setB.has(value)) interArr.push(value);
  }
  
  return interArr;
}
console.log(intersection(A, B)) 
βοΈΒ ν©μ§ν©: μ€λ³΅ μλ λͺ¨λ  μμλ‘ κ΅¬μ±
const A = [1, 2, 3];
const B = [1, 3, 6];
const union = (a, b) => {
  const arr = A.concat(B);
  return [...new Set(arr)];
}
console.log(union(A, B)) 
βοΈΒ μ°¨μ§ν©: A - B( Aμλ μ‘΄μ¬νμ§λ§ Bμλ μ‘΄μ¬νμ§ μλ μμλ‘ κ΅¬μ± )
const A = [1, 2, 3];
const B = [1, 3, 6];
const differenceHas = (a, b) => {
  const setA = new Set(a);
  const setB = new Set(b);
  let arr = [];
  
  setA.forEach(el => setB.has(el) ? '' : arr.push(el));
  return arr;
}
const differenceDelete = (a, b) => {
  const setA = new Set(a);
  const setB = new Set(b);
  setB.forEach(el => setA.delete(el))
  
  return [...setA]
}
console.log(differenceHas(A, B)); 
console.log(differenceDelete(A, B));