언어/JavaScript

[every()] 배열 모든 요소가 조건을 만족하는지 확인하는 방법

Dachaes 2025. 4. 25. 17:06
728x90

every() 

자바스크립트에서 배열을 다룰 때, 모든 요소가 특정 조건을 만족하는지 검사하고 싶은 경우가 있습니다. 예를 들어, 사용자가 입력한 모든 값이 숫자인지, 또는 장바구니에 담긴 상품이 모두 유효한지 등을 확인할 때 유용하죠. 이럴 때 every() 메서드를 사용하면 깔끔하고 선언적인 코드로 원하는 검사를 빠르게 할 수 있습니다.

 


1.  every()란?

every() 는 배열 내 모든 요소가 주어진 조건을 만족하는지 검사하는 배열 메서드입니다. 조건을 모두 만족하면 true, 하나라도 불만족하면 false 를 반환하며, 조건을 만족하지 않는 요소를 만나면 즉시 반복을 중단합니다.

문법

arr.every(callback(currentValue[, index[, array]])[, thisArg])
  • callback : 각 요소에 대해 실행되는 함수
    • currentValue : 현재 요소
    • index (선택) : 현재 요소의 인덱스
    • array (선택) : 현재 배열
  • thisArg (선택) : 콜백 내부에서 사용할 this 값

기본 예제

const numbers = [2, 4, 6, 8];

const allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // true
  • 모든 값이 짝수 → true

언제 every()를 사용하면 좋을까?

  • 입력값이 모두 유효한지 검사할 때
  • 필터링이 아닌 조건 충족 여부만 판단할 때
  • 빠르게 검사하고, 하나라도 실패하면 중단해도 괜찮을 때

 


2.  실전 예제

a.  입력값이 모두 유효한지 검사

const inputs = ["hello", "world", ""];

const allFilled = inputs.every(value => value.trim() !== "");
console.log(allFilled); // false ("" 비어있음)

b.  사용자의 나이가 모두 18세 이상인지 확인

const users = [
  { name: "Alice", age: 21 },
  { name: "Bob", age: 19 },
  { name: "Charlie", age: 17 }
];

const allAdults = users.every(user => user.age >= 18);
console.log(allAdults); // false (Charlie는 미성년자)

c.  장바구니에 담긴 모든 상품이 재고 있음

const cart = [
  { id: 1, inStock: true },
  { id: 2, inStock: true },
  { id: 3, inStock: false }
];

const allAvailable = cart.every(item => item.inStock);
console.log(allAvailable); // false

 


3.  every() vs some() vs filter() 비교

메서드 목적 반환값 조건 만족 시 행동
every() 모든 요소가 조건 만족하는지 true/false 하나라도 실패 → 중단
some() 하나라도 조건 만족하는지 true/false 하나라도 성공 → 중단
filter() 조건 만족하는 요소 추출 배열 끝까지 순회

 


4.  자주 하는 실수 & 주의점

a.  빈 배열에 every() 사용 시 주의

const empty = [];
const result = empty.every(x => x > 0);
console.log(result); // ✅ true
  • 빈 배열은 항상 true 를 반환합니다. 조건을 검사할 값이 없기 때문입니다.
  • 따라서 every() 를 사용하기 전에 배열이 비어 있는지 별도 확인이 필요할 수 있습니다.

b.  return을 생략해서 의도와 다른 결과가 나옴

const result = [1, 2, 3].every(num => {
  num > 0; // ❌ 반환 없음
});
console.log(result); // false

해결 :

[1, 2, 3].every(num => num > 0); // ✅

또는 return 명시 :

[1, 2, 3].every(num => {
  return num > 0;
});

 


5.  마무리

  • every() 는 배열의 모든 요소가 조건을 만족하는지 검사하는 데 사용됩니다.
  • 하나라도 조건을 만족하지 않으면 즉시 false 반환합니다.
  • 조건 판단만 필요하고 결과값이 필요 없다면 filter() 보다 효율적입니다.
  • 빈 배열에서는 항상 true 를 반환하는 점에 유의해야 합니다.

함께 보면 좋은 자료

외부 사이트 :

 


 

728x90