JS Array some, every 메소드 구현

ansrjsdn·2020년 7월 15일
0

JavsScript

목록 보기
5/6
post-thumbnail

some, every란

Array.prototype.some, Array.prototype.every라는 메소드가 있다. Array.prototype.some은 콜백함수를 받아 배열의 원소 중에 하나라도 해당 함수를 만족한다면 true를 반환해주는 함수이다. 아니라면 false를 반환한다.
Array.prototype.every는 모든 원소가 해당 함수를 만족한다면 true를 반환한다. 하나라도 만족하지 않는 원소가 있다면 바로 false를 반환해야한다.

중요한 점은 some은 하나라도 true가 나오는 원소가 있으면 그 시점에서 배열의 순환을 끝내고 바로 true를 반환하는 것이고, every 또한 하나라도 false를 반환하는 원소가 있다면 배열의 순환을 끝내고 바로 false를 반환해야한다.

구현은 어렵지 않게 할 수 있다.

코드

function some(arr, func) {
  for (let i = 0; i < arr.length; i++) {
    if (func(arr[i], i, arr)) {
      return true; // func의 결과가 참이라면 true를 바로 반환
    }
  } // 끝까지 반환 되지 않았으면 false를 반환
  return false;
}
const arr = [1, 2, 3, 4, 5];
console.log(arr.some((value) => value > 2));
console.log(some(arr, (value) => value > 2));
console.log(arr.some((value) => value > 6));
console.log(some(arr, (value) => value > 6));
// true true false false가 나오는 걸 볼 수 있다.
function every(arr, func) {
  for (let i = 0; i < arr.length; i++) {
    if (!func(arr[i], i, arr)) {
      return false; // 하나라도 false이면 바로 false를 반환
    }
  } // 끝까지 반환 되지 않았을 경우 true를 반환
  return true;
}
console.log(arr.every((value) => value > 3));
console.log(every(arr, (value) => value > 3));
console.log(arr.every((value) => value > 0));
console.log(every(arr, (value) => value > 0));
// false false true true가 출력된다.
profile
프론트 공부를 열심히 하고 있는 대학생 개발자입니다.

0개의 댓글