자바스크립트에서 Array의 every()는 배열의 모든 요소가 어떤 조건을 충족하는지 확인하고, some() 함수는 배열의 1개 요소라도 특정 조건을 충족하는지 확인하는데 사용합니다.
아래 코드는 some과 every를 사용하는 예제입니다. some과 every의 인자로 어떤 조건을 체크하는 callback 함수를 전달합니다. some()
의 경우 1개 요소라도 callback에 대해서 true가 리턴되면 true를 리턴합니다. 반면에 every()
는, 배열의 모든 요소가 callback에 대해서 true가 리턴되어야 true를 리턴합니다.
var arr1 = [10, 20, 30, 40];
let result = arr1.some(num => num > 30);
console.log(result); // true
result = arr1.every(num => num > 30);
console.log(result); // false
1. every(), some() Syntax
every와 some 모두 callback 함수를 인자로 받습니다.
arr.every(callback)
arr.some(callback)
callback 함수는 아래와 같이 3개의 인자를 받습니다. index와 array가 필요하지 않다면 생략할 수 있습니다.
- element : 현재 함수로 전달된 요소
- index : 현재 요소의 index
- array : 배열 객체
function isEven(element, index, array)
2. every(), some()의 차이점
- every()는 모든 요소에 대해서 조건을 충족해야 true 리턴
- some()은 1개 요소만 충족해도 true를 리턴
- some의 경우, 어떤 요소가 조건을 충족하면 남아있는 요소들을 체크하지 않고 true 리턴 및 함수 종료. 남은 요소와 관계 없이 true를 리턴하기 때문에 남은 요소들을 확인할 필요 없음.
- every의 경우, 어떤 요소가 조건을 충족하지 못하면 남은 요소들을 체크하지 않고 false를 리턴. 남은 요소들이 조건을 충족해도 false가 리턴되기 때문에 체크할 필요 없음.
아래 예제를 보면, 위의 내용들을 확인할 수 있습니다.
function isEven(element, index, array) {
let even = (element % 2 === 0);
console.log("element: " + element + ", index: "
+ index + ", array: " + array + ", even: " + even);
return even;
}
console.log("# every test1");
let result = [10, 20, 30, 40].every(isEven);
console.log(result);
console.log("# every test2");
result = [10, 21, 30, 40].every(isEven);
console.log(result);
console.log("# some test1");
result = [10, 20, 30, 40].some(isEven);
console.log(result);
console.log("# some test2");
result = [11, 21, 31, 41].some(isEven);
console.log(result);
Output:
# every test1
element: 10, index: 0, array: 10,20,30,40, even: true
element: 20, index: 1, array: 10,20,30,40, even: true
element: 30, index: 2, array: 10,20,30,40, even: true
element: 40, index: 3, array: 10,20,30,40, even: true
true
# every test2
element: 10, index: 0, array: 10,21,30,40, even: true
element: 21, index: 1, array: 10,21,30,40, even: false
false
# some test1
element: 10, index: 0, array: 10,20,30,40, even: true
true
# some test2
element: 11, index: 0, array: 11,21,31,41, even: false
element: 21, index: 1, array: 11,21,31,41, even: false
element: 31, index: 2, array: 11,21,31,41, even: false
element: 41, index: 3, array: 11,21,31,41, even: false
false
3. Arrow function을 이용한 every(), some() 예제
다음과 같이 Arrow function을 사용하여 간단히 구현할 수 있습니다.
let result = [10, 20, 30, 40].every(element => element % 2 === 0);
console.log(result);
result = [10, 20, 30, 40].some((element, index) => element % 2 === 0);
console.log(result);
result = [10, 20, 30, 40].some((element, index, arrow) => element % 2 === 0);
console.log(result);
Output:
true
true
true
Loading script...
Related Posts
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화
- JavaScript Set add() 함수