π 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));