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
'언어 > JavaScript' 카테고리의 다른 글
[handler] 사용자 행동을 연결하는 함수 (0) | 2025.05.13 |
---|---|
[이벤트 객체] 클릭 이벤트의 진짜 주인공은 누구인가? (0) | 2025.05.04 |
[some()] 배열 중 하나라도 조건을 만족한다면? (0) | 2025.04.25 |
[forEach()] 배열을 반복하면서 작업을 수행하는 방법 (0) | 2025.04.25 |
[includes()] 배열에 특정값이 존재하는지 확인하는 방법 (0) | 2025.04.25 |