체이닝
값을 다시 할당하지 않고
반환된 객체에 메서드를 즉시 호출하는 것
이메일 전송 함수
조건 : 활동 여부(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)을 학습하고 개인 학습용으로 정리한 내용입니다.
'독서 > 자바스크립트 코딩의 기술' 카테고리의 다른 글
[자바스크립트] Object.entries()로 객체 순회하기 (0) | 2022.12.28 |
---|---|
[자바스크립트] reduce로 api 배열 데이터 변환하기 (0) | 2022.12.28 |
[자바스크립트] find()와 커링으로 검색 함수 만들기 (0) | 2022.12.28 |
[자바스크립트] 펼침 연산자 + slice 로 새로운 배열 만들기 (removeItem) (0) | 2022.12.27 |
댓글