프로그래밍/알고리즘, 프로그래밍 언어
[JavaScript] 배열에서 중복 엘리먼트 제거하기
제이콥J
2021. 12. 4. 12:59
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]
반응형