본문 바로가기
독서/자바스크립트 코딩의 기술

[자바스크립트] 메서드 체이닝으로 active user에게만 이메일 보내기

by zzocco94 2022. 12. 28.

체이닝

값을 다시 할당하지 않고
반환된 객체에 메서드를 즉시 호출하는 것

이메일 전송 함수

조건 : 활동 여부(active)가 true인 회원들에게만 이메일을 보내고 싶다.

 

const users = [
    {
        name: '가나',
        active: true,
        email: 'gana@kakao.com',
    },
    {
        name: '다라',
        active: false,
        email: '',
    },
];

before

메서드 호출 결과를 변수에 할당한다.

 

const sendActiveUserEmail = (users) => {
    // 1. 활동이 없는 회원 제외
    const activeUsers = users.filter(user => user.active);

    // 2. 이메일 주소 정규화
    const emails = activeUsers.map(user => user.email || `${user.name}@tistory.com`);

    // 3. 이메일 전송
    emails.forEach(email => sendEmail(email);
};

after

map, filter 메서드는 항상 배열을 반환하므로, 변수를 따로 선언하지 않고 바로 배열 메서드를 호출할 수 있다.
이를 이용해서 메서드 체이닝을 해보자.

 

const sendActiveUserEmail = (users) => {
    users
      .filter(user => user.active)
      .map(user => user.email || `${user.name}@tistory.com`)
      .forEach(email => sendEmail(email));
};

 

 

자바스크립트 코딩의 기술 (길벗, 2019)을 학습하고 개인 학습용으로 정리한 내용입니다.

댓글