728x90
배열에 조건에 맞는 친구들이 있는지
혹은 맞지 않는 친구들이 있는지
등을 빠르게 체크할 수 있는 간단 함수를 알아보자
1. some()
이 함수는 조건에 맞는 아이템이 배열에 하나라도 있으면 true 값을 리턴한다.
[1, 2, 3, 4, 5].some((item) => item < 3) // TRUE 1, 2
위에서 1~5 배열 중에 3보다 작은 아이템이 있는가? 의 의미이다.
1,2 두개 존재한다. 고로 리턴 값은 TRUE.
2. every()
프로 출신들은 느낌이 올 것이다.
배열에서 모든 아이템이 조건에 해당하는가?이다.
[1, 2, 3, 4, 5].every((item) => item < 10); // TRUE
[1, 2, 3, 4, 5].every((item) => item < 4); // FALSE
10보다 모든 값이 작은 첫 번째 라인은 TRUE,
4보다 작은 값이 있는 두 번째 라인은 FALSE를 리턴한다.
어떨 때 야무지게 써먹을 수 있을까?
저는 약관 동의 같이
여러 개의 on/off를 체크해야 할 때
모든 동의가 클릭되었는지,
하나라도 off인 값이 있는지 등을 체크할 때 간간히 사용합니다.
const Agroup = [A, B, C];
const Bgroup = [D, E, F];
// A, B, C... = {checked: boolean}
const tempAgree = [Agroup.every((item) => item.checked), Bgroup.every((item) => item.checked)];
const isAllAgreed = tempAgree.every((item) => item === true);
A 그룹에 약관들, B 그룹에 약관들이 있을 때,
위 코드는 tempAgree 배열에서 [A그룹 전체 동의 여부, B그룹 전체동의 여부]를
every를 통해서 각각 체크하고
isAllAgreed에서 every를 통해 모두 동의되었는지 체크하는 로직입니다.
물론 some을 이용해서
체크 안 한 게 한 개라도 있는지,
등의 로직으로 작성할 수도 있고 방법은 무수합니다.
728x90
'Front-end' 카테고리의 다른 글
[SSR] 서버와 클라이언트 시간차이 (2) | 2024.05.07 |
---|---|
[OG] 오쥐는 OG tag, Nextjs에 적용까지 (91) | 2024.04.30 |
[내가 만든 쿠키]가 아닌 친구들은 이제.. Third-party cookie will be blocked. Learn more in the Issues tab. (74) | 2024.04.24 |
[React] <></>, fragment에 key 값 추가하기 (60) | 2024.04.22 |
[HTML] autocomplete 멈춰! (feat. autocomplete="new-password") (1) | 2024.04.18 |