[JS] 20200227 중복된 배열 요소 제거하기

Let's TECH🧐·2020년 2월 27일
0

문제

JavaScript의 Array를 공부하던 중, 배열에 중복된 값이 들어가있는 경우 중복된 값들을 제거하는 방법에 대해 고민하게 됐다.

해결 방법

구글링을 통해 답은 쉽게 찾아냈지만, 그 과정을 좀 더 자세하게 기술해보고자 한다.

let numbers = [1, 2, 2, 3, 1, 4, 5, 1];

numbers.filter((element, index, array) {
  return array.indexOf(element) === index;
})

배열 numbers에는 중복된 요소들이 있는데 이를 filter 함수를 이용해 걸러낼 수 있다.

그 방법은 다음과 같다.
각각의 요소는 자신만의 index를 가지고 있는데, 어떠한 요소가 다른 index 자리에 중복되게 등장하면 해당 요소를 걸러주는 것이다.

위 문장을 다음과 같은 코드로 작성할 수 있다.

numbers.filter((element, index, array) {
  return array.indexOf(element) === index;
})

위에서 볼 수 있듯이 배열 numbers에서는 숫자 1이 4번째와 7번째 인덱스에 다시 나타났고, 숫자 2가 2번째 인덱스에 다시 나타났다.
따라서, numbers.indexOf(1)의 결과값인 0을 제외한 4번째, 7번째 인덱스에 등장하는 숫자 1은 걸러지게 되는 것이다.
또한 numbers.indexOf(2)의 결과값인 1을 제외한 2번째 인덱스에 등장하는 숫자 2는 걸러지게 된다.

느낀 점

세 줄밖에 되지 않는 짧은 코드이지만 그 의미를 이해하기가 쉽지만은 않았다. 머릿속으로는 이해가 됐다고 생각한 것들도 다시 블로그에 자세히 기술해보며 더 확실하게! 충분히! 이해할 수 있도록 해야겠다.

profile
Minju's Tech Blog

1개의 댓글

comment-user-thumbnail
2020년 2월 27일
const numbers = [1, 2, 2, 3, 1, 4, 5, 1];
const uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers) // [1, 2, 3, 4, 5]
답글 달기