JavaScript

[javascript] 자바스크립트 some & every 메소드란?

dev.mk 2022. 6. 18. 21:26
반응형

1. every

every 메서드는 다음과 같이 사용한다. 배열.every( (요소, 인덱스, 배열) => { return 요소 } ,(옵션)함수 내부에서 사용될 this에 대한 값);

  • every()는 배열의 각 엘리먼트에 대해서 테스트 함수의 반환 값이 모두 true인지 확인한다.
  • 모든 case가 true일때, true를 반환한다.
  • 하나라도 false이면 반환 값은 false다.
  • 기존 배열 값은 변경되지 않는다.

배열에 대해서 배열 내의 모든 항목이 조건을 만족하는지 체크하며, 하나라도 false이면 false이다.

간단하게 and 조건이라고 생각하자.

var objArr = [
	{name: '철수', age: 10}    
	, {name: '영희', age: 10}    
	, {name: '바둑이', age: 2}  
];

console.log(objArr.every( (item)=> item.age > 5) ); 
//false (바둑이는 해당안됨...)
console.log(objArr.every( (item)=> item.age > 1) ); 
//true

나이가 5보다 큰것은 3개중 2개밖에 해당이 되지 않기 때문에 false 이다.

 

2. some

some 메서드는 다음과 같이 사용한다. 배열.every( (요소, 인덱스, 배열) => { return 요소 },(옵션) 함수 내부에서 사용될 this에 대한 값);

 

  • some()은 배열의 각 엘리먼트에 대해서 테스트 함수의 반환 값이 하나라도 true가 있는지 확인한다.
  • 하나라도 true가 발생하면 true를 반환한다.
  • 모두 false인 경우만 false를 반환한다.
  • every가 and 조건이라면 some은 or 조건이다.
  • 기존 배열 값은 변경되지 않는다.

배열의 각 요소에 대해서 하나라도 조건을 만족하는 경우 true를 return 한다. 각 배열에 대한 값의 OR 조건이라고 생각하자.

var objArr = [{name: '철수', age: 10}
	,{name: '영희', age: 10}
	, {name: '바둑이', age: 2}
]

console.log(objArr.some( (item)=> item.age > 5) ); 
//true (철수랑 영희의 나이가 5보다 크기 때문에 조건 성립)
console.log(objArr.some( (item)=> item.age > 10) ); 
//false (모두 해당되지 않음)

 

 

반응형