일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- react-native
- sort( )
- 유니온타입
- js
- 모던자바스크립트
- react-native-vision-camera
- javascript
- ios
- 자바스크립트
- 제네릭타입
- reactnative
- craco
- 배열
- 리액트네이티브
- 타입스크립트
- 리액트
- react-native-camera-roll
- react-hook-form
- 코드숨
- React
- 프로그래머스
- 자료구조와알고리즘
- Typescript
- slice
- react-native-image-picker
- 리액트쿼리
- Flipper
- 크라코
- 파스에러
- Android
- Today
- Total
KassyLog
배열에서 중복 제거 본문
1. Set를 이용하여 중복 제거
2. filter()를 이용하여 중복 제거
1. Set
Set - JavaScript | MDN
Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다.
developer.mozilla.org
Set은 중복이 허용되지 않는 객체이다. 안에 이미 같은 값이 존재한다면 추가되지 않는다. 그래서 중복값을 허용하지 않아야 한다면 Set을 이용하면 된다.
아래와 같은 방식으로 Set을 만든다. 값은 배열값이 들어가면 된다.
let x = new Set();
let arr = [0, 1, 2, 3, 0]
console.log([...new Set(arr)]) // [0, 1, 2, 3]
2. fliter
filter를 활용한 중복제거는 indexOf 메소드와 함께 사용하는데 이때 indexOf란 배열 안에서 찾고 있는 값의 최초 인덱스를 반환한다.
Array.prototype.filter() - JavaScript | MDN
filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
developer.mozilla.org
arr.filter(callback(element[, index[, array]])[, thisArg])
⏺ callback : 각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버린다.
다음 세 가지 매개변수를 받는다.
⏺ element : 처리할 현재 요소
⏺ index (optional) : 처리할 현재 요소의 인덱스
⏺ array (optional) : filter를 호출할 배열
⏺ thisArg (optional) : callback을 실행할 때 this로 사용하는 값
이 때 index에서 사용할 처리할 현재 요소의 인덱스를 indexOf 메소드를 활용해서 알아낼 수 있다.
String.prototype.indexOf() - JavaScript | MDN
indexOf() 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.
developer.mozilla.org
let arr = [0, 1, 2, 3, 0]
let filter = arr.filter((e,i)=>arr.indexOf(e) == i);
console.log(filter); //[0, 1, 2, 3]
*응용 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'javascript' 카테고리의 다른 글
[모던 자바스크립트]배열 (0) | 2023.02.17 |
---|---|
[모던 자바스크립트]함수의 추가 기능 (0) | 2023.02.13 |
[모던 자바스크립트]class(클래스) (0) | 2023.02.05 |
sort( ) : 오름차순, 내림차순 정렬하기 (0) | 2023.02.03 |
splice와 slice의 차이점 (0) | 2023.02.03 |