본문으로 바로가기

every, some 배열 메서드를 활용한 배열 콘텐츠 유효성 검사하기



javascript
// 배열이 특정 조건을 만족시키는지 확인하고자 하는 경우에는 Array 객체의 every 메서드를 사용하면
// 모든 원소가 조건을 통과하는지 확인할 수 있습니다.
// 예를 들어 다음의 코드는 배열의 모든 원소가 알파벳과 숫자로만 이루어졌는지 확인하는 예제입니다.

var arrElement = [123, 'aaa', 'abc', '-', 33, 'DDD'];
var arrElement2 = ['aaa', 'abc','DDD'];

// 테스트하는 함수
function textValue(el, idx, arr) {
	var textExp = /^[a-zA-Z]+$/;
	return textExp.test(el);
}

// 테스트 실행
var result = arrElement.every(textValue);
var result2 = arrElement2.every(textValue);

console.log(result, result2);

// Array 객체의 some 메서드를 사용하면 주어진 조건을 만족시키는 요소가 최소 1개 이상 있는지를 확인할 수 있습니다.
var arr = [123, 'aaa', 'abc', '-', 33, 'DDD'];

var result3 = arr.some(textValue);
console.log(result3);

Array 객체의 every 와 some 메서드는 모든 원소에 대해 실행되지 않습니다.

즉, every 메서드를 사용할 때는 함수의 반환값이 false 가 되면 콜백 함수의 실행(동작)이 멈추고 메서드는 false 를 반환합니다.

반면 some 메서드는 함수의 반환값이 true 일 때까지만 원소를 계속 확인합니다.

그러나 콜백 함수가 모든 원소를 검사하고 어느 시점에서도 true 를 반환하지 않는다면 some 메서드는 false 를 반환합니다.

어떤 메서드를 사용하느냐는 필요에 따라 다릅니다.

모든 배열 원소가 조건을 만족하는지 알고 싶다면 every, 그렇지 않다면 some 을 사용하면 될 것입니다.



Jaehee's WebClub