본문 바로가기
개발/자바스크립트

[자바스크립트] 문자열 파싱(split, ...) 그리고 Set에 대해

by 핸디(Handy) 2020. 8. 21.

다음과 같은 문자열이 있습니다.

let str = 'string';

이 문자열을 s,t,r,i,n,g로 분리하고 싶을때 일반적으로 split 메소드를 사용합니다.

let str = 'string';
let letter = str.split(''); // ["s", "t", "r", "i", "n", "g"]
let letter2 = [...str]; // ["s", "t", "r", "i", "n", "g"]

이제 letter 배열을 이용해 하고싶은 작업을 진행하면 됩니다.

추가로 JavaScript ES6에서 Spread Operator ( ... ) 이 새롭게 추가되었습니다.

...object를 했더니 문자열이 분리되었습니다. 아주 간편하고 좋습니다.

이와 별개로 문자열을 분리했는데 값의 중복이 너무 많을 때가 있습니다.

중복되지 않는 값들을 얻으려면 어떻게 하면 될까요?

답은 바로 Set를 쓰는 것입니다.

let number = [1,2,3,4,1,6,2,3,1,3,1,5]
let uniqueNumber = new Set(number) // {1,2,3,4,6,5}

다만 Set의 경우 배열이 아닙니다. 따라서 이를 다시 배열로 변경하려면 위에서 배운 ... 메소드를 사용하면 됩니다.

let number = [1,2,3,4,1,6,2,3,1,3,1,5]
let uniqueNumber = new Set(number) // {1,2,3,4,6,5}
let uniqueNumberArray = [...uniqueNumber] // [1, 2, 3, 4, 6, 5]

 

이제 Set이 어떤 친구인지 알았습니다. 여기서 추가로 Set의 주요 메소드에 대해 설명을 해보도록 하겠습니다.

    ○ add 메소드를 통해 값을 추가할 수 있습니다.

let number = [1,2,3,4,1,6,2,3,1,3,1,5]
let uniqueNumber = new Set(number) // {1,2,3,4,6,5}
uniqueNumber.add(7) // {1,2,3,4,6,5,7}
uniqueNumber.add(7) // {1,2,3,4,6,5,7} <- unique 값만 가지고 있기 때문에 생략

 

  ○ has 메소드를 통해 값의 존재 여부를 확인할 수 있습니다. 

let number = [1,2,3,4,1,6,2,3,1,3,1,5]
let uniqueNumber = new Set(number) // {1,2,3,4,6,5}
uniqueNumber.has(3) // true
uniqueNumber.has(9) // false

 

  ○ delete 메소드를 통해 값을 제거 할 수 있습니다.

let number = [1,2,3,4,1,6,2,3,1,3,1,5]
let uniqueNumber = new Set(number) // {1,2,3,4,6,5}
uniqueNumber.delete(3) // {1,2,4,6,5}

 

    ○ clear 메소드를 통해 모든 값을 제거 할 수 있습니다.

let number = [1,2,3,4,1,6,2,3,1,3,1,5]
let uniqueNumber = new Set(number) // {1,2,3,4,6,5}
uniqueNumber.clear() // { }

 

댓글