📌배열(Array)에서 중복 요소 찾기
Javascript에서 배열에 값을 추가할 경우 중복 여부에 대한 상관없이 값을 추가할 수 있다. 현재 필자가 개발하고 있는 소스에서 중복 여부에 대한 판단이 필요한 부분이 있었고, 필자가 사용한 방법에 대해 소개하려고 한다.
📌Javascript 배열 내장 메서드 filter() 의 활용
array.filter(function(element, index, array))
//array : 순회할 배열
//element : 현재 배열의 요소
//index : 현재 배열의 요소의 인덱스
📑Javascript 배열 내장 메서드 filter를 사용하여 조건에 맞는 요소만을 반환받을 수 있다.
📑기본 구조는 다음과 같다. 이와 같은 방식으로 조건을 추가하고 요소들을 순회하며 배열을 필터링을 할 수 있다.
📌Javascript 특정 위치 찾는 indexOf() 함수 - 기본 구조
string.indexOf(findString, position)
- findstirng은 찾을 문자열을 의미합니다.
- position 기본으로 0으로 설정되어 있으며, 추가 시에 시작 위치를 설정할 수 있습니다.
- 찾고자하는 문자열이 없으면 -1을 리턴하고, 있다면 첫 시작 위치를 리턴합니다.
📌indexOf()와 filter()의 사용 예제
const nmArr = ["Tom", "Jack", "Micky", "Moons", "Mark", "Jack"]
function findDuplicates(arr) {
return arr.filter(function(element, index) { return arr.indexOf(item) !== index })
}
const duplicates = findDuplicates(nmArr)
console.log(duplicates)
//결과
//Jack
📑기본 nmArr 에서 필터링 조건을 순환 요소에 인덱스와 요소의 위치가 다른 것을 중복으로 판단하고, 필터링하였다. 결과적으로
배열의 마지막 요소인 "Jack"의 요소의 인덱스는 6으로 반환되지만 위치의 시작 값은 2가 반환될 것이다. 따라서 "Jack"은 배열안에서 중복으로 판단을 할 수 있다.
'Languages > Javascript' 카테고리의 다른 글
[Javascript]JSON 데이터의 키의 값을 추가 및 삭제하기 (0) | 2023.05.14 |
---|---|
[Javascript]동기와 비동기의 이해 콜 스택(Call Stack) 이해하기 (6) | 2023.04.10 |
[Javascript]화살표 함수(Arrow Function) 사용하기 (2) | 2023.01.17 |
[프로그래머스]마법의 엘레베이터(JavaScript) (7) | 2023.01.06 |
[Javascript]재귀 함수(Recursion Function) (7) | 2023.01.06 |