Array.prototype.filter

은비·2023년 7월 7일
0

JS_Array

목록 보기
9/20
post-thumbnail

Array.prototype.filter

  1. 자신을 호출한 배열의 모든 요소를 순회하면서 인수로 전달받은 콜백 함수를 반복호출한다.
  2. 콜백 함수의 반환값이 ture인 요소로만 구성된 새로운 배열을 반환한다.
  3. 원본 배열은 변경되지 않는다.
const numbers = [1, 2, 3, 4, 5];

const oods = numbers.filter(item => item % 2);
/* numbers 배열에서 홀수인 요소만 필터링한다. 1은 ture로 평가된다. */
console.log(oods); // [1, 3, 5]
console.log(numbers); // [1, 2, 3, 4, 5]

filter 메서드는 자신을 호출한 배열에서 필터링 조건을 만족하는 특정 요소만 추출하여 새로운 배열을 만들고 싶을때 사용한다.

map과 다르게 filter는 메서드가 생성하여 반환한 새로운 배열의 length가 filter 메서드를 호출한 배열의 length와 값과 같거나 작다. (map은 항상 length가 일치하다.)

filter 메서드는 콜백 함수를 호출할 때 3개의 인수, 즉 filter 메서드를 호출한 배열의 요소값과 인덱스, filter 메서드를 호출한 배열(this)을 순차적으로 전달한다.

[1, 2, 3].filter((item, index, arr) => {
	console.log(`요소값: ${item}, 인덱스: ${index}, this: ${arr}`);
	return item % 2;
};

/*
요소값: 1, 인덱스: 0, this: [1, 2, 3]
요소값: 2, 인덱스: 1, this: [1, 2, 3]
요소값: 3, 인덱스: 2, this: [1, 2, 3]
*/

0개의 댓글

관련 채용 정보