Array.every(), Array.some()

Robin·2022년 12월 30일
0

TIL

목록 보기
21/24
post-custom-banner

현재 진행중인 프로젝트 진행 중,
'유기견 보호소 관리자'가 회원가입 할 경우의 validation 고려해야 하기 위해 초반엔 아래와 같은 코드를 쳤다:

 if (
      !email ||
      !password ||
      !nickname ||
      !role ||
      !name ||
      !region ||
      !phoneNumber ||
      !description ||
      !caution
    )
      throw ApiError.setBadRequest("All fields are required.");

일반 유저와는 달리 입력해야하는 input값이 많아 단순한 하드코딩이 진행되었다.


그러던 중 팀원분을 통해 Array.every()의 키워드를 알게 되었고 아래와 같이 코드를 수정하였다:

const isValid = [
      email,
      password,
      nickname,
      role,
      name,
      region,
      phoneNumber,
      description,
      caution,
    ].every((item) => item);

    if (!isValid) throw ApiError.setBadRequest("All fields are required.");

Array.every()

모든 요소가 콜백함수를 통과해야만 true가 나온다.

const arr = [1, 2, "hi"];

const check = (element) => element === "hi";

console.log(arr.every(check)); // false

위의 예시에서 some() 👉 every() 함수만 바꿔줬을 뿐인데 결과는 다르게 나온다.


Array.some()

Array.some() 메서드는 배열 안의 요소들이 콜백함수를 통과하는지 여부를 알려준다.

const arr = [1, 2, "hi"];

const check = (element) => element === "hi";

console.log(arr.some(check)); // true

위의 예시의 경우, 배열안에 "hi"라는 요소가 하나라도 있었기에 값은 true가 나오게 된다.

profile
Always coding or dog walking
post-custom-banner

0개의 댓글