const set = new Set()
set.add(5)
set.add('5')
set.add(0)
set.add(5)
console.log(set) // Set(3) { 5, '5', 0 }
set.size // 3
set.has(5) // true
set.delete(5)
set.has(5) // false
배열과 다르게 인덱스 개념이 없고 값으로 삭제하고 포함 여부를 확인한다.
set.clear()
set.size() // 0
const s = new Set([1,2,3,'1','2','3'])
const ss = new Set([...s])
const set = new Set([1,2,3,4,5])
console.log(set.keys()) // SetIterator {1, 2, 3, 4, 5}
console.log(set.values()) // SetIterator {1, 2, 3, 4, 5}
console.log(set.entries()) // SetIterator {1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5}
console.log(set[1]) // undefined
set.forEach(function(key, value, ownerSet){
console.log(key, value, this)
}, {})
// 1 1 {}
// 2 2 {}
// 3 3 {}
// 4 4 {}
// 5 5 {}
const arr2 = arr.reduce((item, c) => {
if(item.includes(c)) return item
item.push(c)
return item
}, [])
const arr = [1,1,2,2,3,3,4,4,5,6]
const newArr = [...new Set(arr)]
console.log(newArr) // [ 1, 2, 3, 4, 5, 6 ]
const makeUniqueArr = arr => [...new Set(arr)]
const a = [1,1,1,1,1,1,2,2,2,2,2,2,3,3,3]
makeUniqueArr(a) // [1, 2, 3]
사용하기 좋지 않은 경우
1. 특정 요소에 접근
2. 인덱스가 필요한 경우