JS 배열 내 중복요소 찾기

MW·2021년 8월 23일
0

javascript

목록 보기
1/1
const result = {}
const arr = ["apple","apple","banana","melon","melon"]
arr.forEach(f => {
        result[f] = (result[f] || 0) + 1
})

실행 결과 다음과 같은 JSON 형태의 자료를 얻을 수 있다.
{apple : 2, banana : 1, melon : 2}

위 실행 코드중 다음 구문을 살펴보자

result[f] = (result[f] || 0) + 1

  • JS에서 forEach는 마치 for..in 구문처럼 각 요소를 순회하며 코드를 실행한다. 위 구문에서 'f' 는 개발자가 임의로 정해놓은 index 명이다. 즉, f에는 차례대로 apple, apple,banana ... 의 값이 들어가며 순회한다.

  • result[f] 는 에서의 [] 사용은 배열에 대한 접근이 아닌 JSON 형태 자료의 key에대한 value에 접근하겠다는 의미이다. 1번째 해설에서 apple, apple,banana과 같이 순회하므로 result[apple] 임을 알 수 있다.

  • JS 에서 (구문1 || 구문2) 이 뜻하는 바는, 만약 구문1이 존재하지 않는다면 (null 혹은 undefined) 구문2를 return 받겠다는 뜻이다. 구문1이 존재한다면 구문1을 return 받겠다는 뜻도 포함한다.

  • 즉, result[f] = (result[f] || 0) + 1 의 의미는

  1. result[f] 가 존재할 경우 - result[f] = result[f] + 1
  2. result[f] 가 존재하지 않을 경우 - result[f] = 0 + 1
    이다.
profile
Develop

0개의 댓글