sets introduction - Lee-hyuna/33-js-concepts-kr GitHub Wiki
μλ°μ€ν¬λ¦½νΈμ Set μκ°
Set
μ κ³ μ ν κ°μ λͺ¨μμ λ§λ€ μ μλ ES6(ES2015)μ μλ‘μ΄ κ°μ²΄ μ νμ΄λ€. Set
μ κ°μ λ¬Έμμ΄ λλ μ μμ κ°μ μμκ° μΌ μ μμ§λ§ κ°μ²΄ 리ν°λ΄ λλ λ°°μ΄κ³Ό κ°μ λ 볡μ‘ν κ°μ²΄ μ νλ Setμ μΌλΆκ° λ μ μλ€.
λ€μμ κΈ°λ³Έ setκ³Ό add
, size
, has
, forEach
, delete
λ° clear
μ κ°μ΄ μ¬μ© κ°λ₯ν λͺ κ°μ§ λ©μλλ₯Ό 보μ¬μ£Όλ κ°λ¨ν μμ΄λ€ .
let animals = new Set();
animals.add('π·');
animals.add('πΌ');
animals.add('π’');
animals.add('πΏ');
console.log(animals.size); // 4
animals.add('πΌ');
console.log(animals.size); // 4
console.log(animals.has('π·')); // true
animals.delete('π·');
console.log(animals.has('π·')); // false
animals.forEach(animal => {
console.log(`Hey ${animal}!`);
});
// Hey πΌ!
// Hey π’!
// Hey πΏ!
animals.clear();
console.log(animals.size); // 0
λ€μμ λ°°μ΄μ μ λ¬νμ¬ Setμ μ΄κΈ°ννλ λ λ€λ₯Έ μμ λλ€. μ΄κΈ°ν λ°°μ΄μ΄ μ΄λ»κ² λ³νλμ§ νμΈν΄λ³΄μ. μ€λ³΅λ κ°μ μ¬λΌμ§κ³ λμ€μ μΆκ° λ λ°°μ΄μ κ·Έλλ‘ μ μ§λλ€.
let myAnimals = new Set(['π·', 'π’', 'π·', 'π·']);
myAnimals.add(['π¨', 'π']);
myAnimals.add({ name: 'Rud', type: 'π’' });
console.log(myAnimals.size); // 4
myAnimals.forEach(animal => {
console.log(animal);
});
// π·
// π’
// ["π¨", "π"]
// Object { name: "Rud", type: "π’" }
λ¬Έμμ΄μ λ°λ³΅ κ°λ₯νλ―λ‘(iterable)μ΄λ―λ‘ Setλ₯Ό μ΄κΈ°ν νκΈ° μν΄ μ λ¬ κ°λ₯νλ€.
console.log('Only unique characters will be in this set.'.length); // 43
let sentence = new Set('Only unique characters will be in this set.'); console.log(sentence.size); // 18
Setμ forEach
λ₯Ό μ¬μ©ν κ² μ²λΌ, forβ¦of 루νλ Setμ λ°λ³΅νλ λ° μ¬μ©ν μ μλ€.
let moreAnimals = new Set(['πΊ', 'π΄', 'π', 'π']);
for (let animal of moreAnimals) {
console.log(`Howdy ${ animal }`);
}
// Howdy πΊ
// Howdy π΄
// Howdy π
// Howdy π
Keysμ Values
Setμλ keys
λ° values
λ©μλκ° μμΌλ©° keys λ values μ λ³λͺ
μ΄λ―λ‘ λ λ©μλλ μ νν λμΌν μμ
μ μννλ€. μ΄λ¬ν λ©μλ μ€ νλλ₯Ό μ¬μ©νλ©΄ Setμ μΆκ° λ μμμ λμΌν μμλ‘ Setμ κ°μ΄ μλ μ λ°λ³΅μ(iterator) κ°μ²΄κ° λ°νλλ€. μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°λ€.
let partyItems = new Set(['π', 'πΎ', 'π']);
let items = partyItems.values();
console.log(items.next());
console.log(items.next());
console.log(items.next());
console.log(items.next().done);
// Object {
// done: false,
// value: "π"
// }
// Object {
// done: false,
// value: "πΎ"
// }
// Object {
// done: false,
// value: "π"
// }
// true