JavaScript Set 은 언제 사용하는가?
— JAVASCRIPT, 2022 — 1 min read
배경
Set 을 실무에서 쓰는가?
배열의 요소에 같은 값들이 중복되어있다.
[A,B,C,A,B]
배열의 중복을 없애고 유일한 값만 있는 배열로 만들고 싶다
[A,B,C]
검색결과
다양한 방식이 존재하는데 Set 을 사용해서 한줄로 중복을 제거한 값만 얻을 수 있었다.
Set ?
- 상황
[{"id":1,"score":A},{"id":2,"score":B},{"id":3,"score":A},{"id":4,"score":C}]- db 에서 조회한 table data[false,FILTER]- id,score 컬럼중 filter 기능이 있는지 여부를 나타낸 배열 (FILTER 는 상수로 filter type)["id","score"]- 컬럼 dataKey 값 배욜[[],[A,B,C]]- 함수 반환 결과
data.map((obj)=>{ Object.entries(obj).map(([key, value]) => { dataKeys.filter((v,i)=>filters[i] === FILTER).map((dataKey)=>{ let index =dataKeys.indexOf(dataKey) if (!results[index]){ results[index] = [] } if (key === dataKey){ results[index] = unique([...results[index],value]) } }) }) })
unique 함수를 만들어서 중복이 제거된 배열을 만든다.
const unique = array => [...new Set(array)];
Map ?
출처
https://velog.io/@dolarge/Java-Script-Set-%EA%B3%BC-Map https://ko.javascript.info/keys-values-entries
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/set https://medium.com/@hongkevin/js-5-es6-map-set-2a9ebf40f96b