연권
달콘박스
연권
전체 방문자
오늘
어제
  • 전체 (308)
    • Web (22)
      • JavaScript (8)
      • TypeScript (2)
      • Node.js (8)
      • HTML (0)
      • CSS (0)
      • Network (1)
      • Browser (0)
      • Patterns (3)
    • Framwork (4)
      • Vue.js (3)
      • Electron (1)
    • Infra&DevOps (1)
    • Algorithm (246)
    • Database (16)
    • Review (15)
    • Test (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • BFS
  • 백준ㅇ
  • 문자열
  • typescript
  • sql
  • MySQL
  • 재귀
  • 진법
  • javascript
  • 진수
  • DP
  • 코딩테스트 연습
  • 백준
  • 정렬
  • 알고리즘
  • 스택
  • 동적계획법
  • java
  • 프로그래머스
  • 백트레킹

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
연권

달콘박스

Web/JavaScript

하나만 true/truthy인지 구분하기 js

2021. 7. 19. 11:05
반응형

여러개의 값들 중에 하나만 true/truthy인지 구분하기 위한 함수 입니다.

function onlyOne(...args) {
  return args.reduce((acc, arg) => (acc += arg), 0) === 1;
}

const a = true;
const b = false;

console.log(onlyOne(a, b, b, b)); // true
console.log(onlyOne(a, a, b, b)); // false

 

 

코드 도출 과정

Rest 파라미터

...args부분은 Rest 파라미터로 정해지지 않은 인수를 배열로 args라는 변수에 담을 수 있도록 합니다.

 

Reduce 메서드

Reduce 메서드는 배열에 정해진 reducer함수를 실행하고 하나의 결과값을 반환해줍니다.

acc: 누산기, 두 번째 인자 0으로 초기화함

arg: args배열의 각각의 값

acc += arg에서 boolean의 암묵적인 형 변환이 일어납니다. true -> 1, false -> 0

해당 값을 acc 변수로 다 더해 최종적으로 합해진 값이 1이면 true가 한개고 아닐경우는 한개가 아닙니다.

 

참고

YOU DON'T KNOW JS

Reduce https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

Rest 파라미터 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/rest_parameters

반응형
저작자표시 동일조건 (새창열림)

'Web > JavaScript' 카테고리의 다른 글

라인 피드와 캐리지 리턴  (0) 2022.04.07
자주 사용하는 정규표현식 [ javascript ]  (0) 2021.09.08
&&와 || 연산자  (0) 2021.07.19
간단하게 해주는 js 표현식 정리  (0) 2021.07.17
javascript의 타입을 확인하는 typeof  (0) 2021.07.16
    'Web/JavaScript' 카테고리의 다른 글
    • 자주 사용하는 정규표현식 [ javascript ]
    • &&와 || 연산자
    • 간단하게 해주는 js 표현식 정리
    • javascript의 타입을 확인하는 typeof
    연권
    연권

    티스토리툴바