독서/자바스크립트 코딩의 기술
[자바스크립트] 메서드 체이닝으로 active user에게만 이메일 보내기
zzocco94
2022. 12. 28. 02:13
체이닝
값을 다시 할당하지 않고
반환된 객체에 메서드를 즉시 호출하는 것
이메일 전송 함수
조건 : 활동 여부(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)을 학습하고 개인 학습용으로 정리한 내용입니다.