
자바스크립트(JavaScript) 배열의 내장 메서드 중 데이터 유효성 검사나 특정 조건 만족 여부를 간단하게 판별할 때 유용하게 쓰이는 Array.prototype.every()와 Array.prototype.some() 메서드에 대해 포스팅해 보고자 한다.
every()는 이름 그대로 배열의 모든 요소가 주어진 조건을 만족하는지 확인한다.
const numbers = [10, 5, 8, 20];
const negativeNumbers = [10, -5, 8, 20];
const allPositive = numbers.every(num => num > 0);
console.log(`[10, 5, 8, 20]는 모두 양수인가 ${allPositive}`);
// 출력: [10, 5, 8, 20]는 모두 양수인가 true
// -5가 포함되어 있어 false를 반환하고 즉시 종료됨
const allPositive2 = negativeNumbers.every(num => num > 0);
console.log(`[10, -5, 8, 20]는 모두 양수인가요? ${allPositive2}`);
// 출력: [10, -5, 8, 20]는 모두 양수인가요? false
some()은 배열 내에서 하나라도 주어진 조건을 만족하는 요소가 있는지 확인한다.
const temperatures = [25, 18, -3, 30];
const positiveTemps = [25, 18, 5, 30];
// -3이 포함되어 있어 true를 반환하고 즉시 종료됨
const hasNegative = temperatures.some(temp => temp < 0);
console.log(`[25, 18, -3, 30]에 음수가 포함되어 있나요? ${hasNegative}`);
// 출력: [25, 18, -3, 30]에 음수가 포함되어 있나? true
// 모든 요소가 양수이므로 false를 반환
const hasNegative2 = positiveTemps.some(temp => temp < 0);
console.log(`[25, 18, 5, 30]에 음수가 포함되어 있나요? ${hasNegative2}`);
// 출력: [25, 18, 5, 30]에 음수가 포함되어 있나? false
이 두 메서드는 특히 배열의 복잡한 조건 검사 시 for 루프나 forEach를 대체하여 깔끔한 코드를 작성할 수 있도록 도와 줌.
every()
some()
const userRoles = ['editor', 'reviewer', 'guest'];
const isAdmin = userRoles.some(role => role === 'admin');
console.log(`관리자 권한 보유 여부 ${isAdmin}`);
// 출력: 관리자 보유 여부 false