[TIL] 배열 고차 함수 - (3) some / every

Cottonmycotton·2021년 11월 20일
0

TIL

목록 보기
12/16

✔️ 1. Array.prototype.some

📌 (1) some이란?

some메서드는 자신을 호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 단 한 번이라도 참이면 true, 모두 거짓일 경우 false를 반환한다. 쉽게 말해, true를 반환하는 요소를 찾을 때 까지 배열에 있는 각 요소에 대해 한 번씩 콜백 함수를 실행한다. 해당하는 요소가 발견한 경우 true를 반환, 모든 값에서 거짓을 반환하면 false를 반환한다. some은 빈 배열에서 호출하면 무조건 false를 반환한다.

📌 (2) some의 인수

some 메서드는 앞에서 살펴본 forEach, map, filter 함수와 마찬가지로 요소값, 인덱스, this(array) 총 3개의 인수를 전달한다.

const arr = [1, 2, 3, 4];

arr.some((elements, index, array) => {
  console.log(`요소값: ${elements}, 인덱스: ${index}, this: ${array}`)});
/*
요소값: 1, 인덱스: 0, this: [1, 2, 3, 4]
요소값: 2, 인덱스: 1, this: [1, 2, 3, 4]
요소값: 3, 인덱스: 2, this: [1, 2, 3, 4]
요소값: 4, 인덱스: 3, this: [1, 2, 3, 4]
*/

📌 (3) some 사용하기

// 배열의 요소 중 5보다 큰 요소가 1개 이상 존재하는지 확인하기
const arr = [1, 2, 3, 4, 5];

arr.some(elements => elements > 5); // false

// 배열의 요소 중 cherry가 1개 이상 존재하는지 확인하기

const arr = ['apple', 'orange', 'cherry'];

arr.some(elements => elements === 'cherry'); // true

// 빈 배열일 경우 some은 언제나 false를 반환한다

const arr = [];

arr.some(elements => elements < 4); // false

✔️ 2. every

📌 (1) every란?

every 메서드는 자신을 호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 모두 참이면 true, 단 한번이라도 거짓이면 false를 반환한다. 빈 배열에서 호출하면 항상 true를 반환한다.

📌 (2) some의 인수

요소값, 인덱스, this(array) 총 3개의 인수를 전달한다.

const arr = [1, 2, 3, 4];

arr.every((elements, index, array) => {
  console.log(`요소값: ${elements}, 인덱스: ${index}, this: ${array}`)});
/*
요소값: 1, 인덱스: 0, this: [1, 2, 3, 4]
요소값: 2, 인덱스: 1, this: [1, 2, 3, 4]
요소값: 3, 인덱스: 2, this: [1, 2, 3, 4]
요소값: 4, 인덱스: 3, this: [1, 2, 3, 4]
*/

📌 (3) every 사용하기

// 배열의 모든 요소가 5보다 큰지 확인하기
const arr = [1, 5, 6, 7];

arr.every(elements => elements > 5); // false

// 빈 배열일 경우 every는 언제나 true를 반환한다
const arr = [];

arr.every(elements => elements > 5); // true

_참고 자료: 모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리

profile
투명인간

0개의 댓글