본문 바로가기
프로그래밍/알고리즘, 프로그래밍 언어

[JavaScript] 배열에서 중복 엘리먼트 제거하기

by 제이콥J 2021. 12. 4.

1. Set 메소드

  • Set 객체로 중복 데이터 제거하기
  • 문법 : new Set(데이터)
let arr = [1,1,2,2,2,3,3]
let newArr = [...new Set(arr)]

console.log(newArr) // [1, 2, 3]

 

2. filter, indexOf 메소드

  • indexOf 메소드는 조회할 값이 처음으로 등장한 인덱스를 리턴
let arr = [1,1,2,2,2,3,3]

let newArr = arr.filter((el, idx) => arr.indexOf(el) === idx)

console.log (newArr)  // [1, 2, 3]

 

3. reduce, includes 메소드

  • reduce 메소드로 각 엘리먼트를 조회하되, 초기값은 빈 배열로 입력하기
  • includes 메소드로 배열에 해당 엘리먼트 포함 여부를 확인하기
  • 포함 되어있지 않다면 해당 엘리먼트 추가하고, 포함 되어있으면 추가하지 않기
let arr = [1,1,2,2,2,3,3]

// 삼항연산자
let newArr = arr.reduce((acc, cur) => {
  return acc.includes(cur) ? acc : [...acc, cur]
}, []);

// if문
let newArr = arr.reduce((acc, cur) => {
  if (acc.includes(cur)) {
    return acc
  } else {
    return [...acc, cur]
  }
}, []);

console.log(newArr)  // [1, 2, 3]

 

4. forEach, includes 메소드

  • 중복이 없는 엘리먼트를 담을 빈 배열 선언 (newArr)
  • forEach 메소드로 각 엘리먼트를 순회하며, 해당 엘리먼트 포함 여부를 includes로 확인
  • newArr 배열에 포함되어 있지 않다면, 해당 엘리먼트를 push로 추가하기
let arr = [1,1,2,2,2,3,3]
let newArr = []

arr.forEach((el)=> {
  if (!newArr.includes(el)) newArr.push(el)
})

console.log(newArr)  // [1, 2, 3]

 

 

반응형

댓글