Set에 대해서 포스팅하겠습니다
new Set([iterable]);
다른 컬렉션과 다르게 특이한 점은 Set.prototype.entries()는
[value,value]를 갖는 Iterator객체를 반환합니다.
따라서
keys()와 values()메서드가 동일한 Iterator를 반환합니다.
그 외에, add() has() clear() delete() 등이 있습니다.
메서드명만 봐도 어떤 기능을 하는지 직관적으로 알 수 있습니다.
const members = [
{
name : 'kim',
age : '30',
hobby : 'game'
},
{
name : 'kwon',
age : '31',
hobby : 'reading books'
},
{
name : 'park',
age : '29',
hobby : 'sleeping'
},
{
name : 'kong',
age : '26',
hobby : 'game'
},
]
const hobbys = members.reduce((accum,current)=>{
return accum.add(current.hobby)
},new Set())
reduce() 함수를 이용해봤습니다.
초기값은 new Set()으로 되어 있습니다.
여기에 members의 객체요소를 순회하며 hobby속성을 집어넣습니다.
중복되는 값인 game은 하나만 존재하게 됩니다.
네 번째 반복의 game은 이미 Set에 존재하는 요소가 있기 때문에 무시됩니다.
따라서, 순서가 보장됩니다.
// result
Set { 'game', 'reading books', 'sleeping' }
간단하지만 효과적인 Set에 대해서 알아봤습니다!
감사합니다