JavaScript 배열 메서드 - 필터링

Array.prototype.filter()



나는 또 다른 유용하고 매우 일반적인 JavaScript(JS) 배열 방법에 대해 다시 작성하고 있으며 이것은 주석에 표시된 것과 정확히 일치합니다. 필터링합니다. 배열에 저장된 정보가 있고 특정 조건을 충족하는 특정 항목을 선택(또는 제외)하려는 경우 .filter()가 친구입니다.

.filter() 사용 방법


.map() , .filter() 와 마찬가지로 원래 배열을 변경(변경)하지 않고 필터링된 모든 값으로 새 배열을 만듭니다. 필터 메소드는 함수를 인수로 받아들이고, 앞서 언급한 바와 같이 이를 콜백 함수(또는 콜백)라고도 합니다. 콜백 함수는 true 또는 false *의 반환 값을 가져야 합니다. 필터 메서드에 대한 콜백 함수를 배열의 각 값에 대한 테스트로 생각할 수 있습니다. 값이 테스트를 통과하면(return true ) 새 배열로 수락되고 그렇지 않으면 컷오프됩니다. .

개발자가 .filter() 메서드를 호출할 때 콜백 함수를 작성하는 것을 자주 볼 수 있지만 수행 중인 테스트가 광범위한 경우 별도로 함수를 생성할 수도 있습니다. 아래 예에서 둘 다 보여드리겠습니다.

*편집: 콜백 함수가 명시적으로 true 또는 false를 반환할 필요는 없지만 1과 같은 truthiness 값 또는 0을 좋아하는 falsiness 값을 반환할 필요가 없다는 추가 메모를 제공한 Jon Randy에게 감사드립니다.

예시:

const randomNumbers = [2, 71, 828, 18, 28, 459, 04, 523, 53, 602, 87, 47, 13, 526, 62, 49, 77, 57, 24, 70, 93]

function isEven(number) {
  return number % 2 === 0;
}

const filteredForEven = randomNumbers.filter(isEven);
const filteredForOdd = randomNumbers.filter( number => !isEven(number));

console.log(filteredForEven); // [2,828,18,28,4,602,526,62,24,70]
console.log(filteredForOdd); // [71,459,523,53,87,47,13,49,77,57,93]
console.log(randomNumbers); // [2,71,828,18,28,459,4,523,53,602,87,47,13,526,62,49,77,57,24,70,93]


위의 예에서 randomNumbers라는 배열이 있습니다(이 숫자의 출처를 알고 있다면 보너스 포인트... :D). 우리는 .filter()를 호출했습니다. 또한 전달한 숫자가 짝수인지 테스트하기 위해 isEven라는 함수를 정의했습니다.

보시다시피 randomNumbers 배열에서 짝수를 필터링할 때 괄호 없이 콜백 함수의 이름만 입력하면 결과에 짝수만 포함된 새 배열이 표시됩니다.

홀수를 필터링할 때 콜백 함수로 사용할 새 함수를 만드는 대신 .filter() 안에 화살표 함수로 함수를 작성했습니다. > 그렇지 않은 경우 새 배열에 넣습니다(느낌표 !는 NOT에 대한 JS입니다).

요약



배열.프로토타입.필터():
  • 배열의 각 값에 대해 제공된 콜백 함수를 호출하여 새 배열을 만듭니다.
  • 콜백 함수는 isEven 또는 true 로 평가되어야 합니다.
  • 원래 배열을 변경하지 않습니다.

  • 이 방법에 대한 자세한 내용은 MDN - Mozilla의 공식 문서를 확인하십시오.

    끝까지 읽으셨다면 읽어주셔서 감사하고, 오류나 피드백이 있으면 댓글로 남겨주세요.

    좋은 웹페이지 즐겨찾기