728x90
Array.prototype.filter()
arr.filter(callback(element[, index[, array]])[, thisArg])
주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
1) 매개변수
- callback : 각 요소를 시험할 함수로 true 반환 시 요소를 유지, false 반환 시 요소를 버림.
- element : 처리할 현재 요소
- index : 처리할 현재 요소의 인덱스
- array : filter를 호출한 배열
- thisArg : callback을 실행할 때 this로 사용하는 값
2) 반환 값
- 테스트를 통과한 요소로 이뤄진 새로운 배열. 어떤 요소도 테스트를 통과하지 못하면 빈 배열 반환.
3) 명명되지 않은 매개변수 (Unnamed parameters) ⭐️
- 매개변수의 이름을 지정하지 않고도 함수 정의에서 매개변수를 사용할 수 있게 해준다.
- ex. 매개변수의 옵션이 아닌 기본값으로 element를 사용해야 하는데, 이 부분을 지정하지 않고도 index를 사용할 수 있음.
✏️ 예시
- 명명되지 않은 매개변수 (아래 예시와 같이 element 부분을 언더 스코어로 표시했다.)
const arr = [1, 2, 3, 4, 5];
const filteredArr = arr.filter((_, index) => index % 2 === 0);
console.log(filteredArr); // [1, 3, 5]
- 특정 조건에 맞는 값 골라내기
function isBigEnough(value) {
return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered 는 [12, 130, 44]
https://school.programmers.co.kr/learn/courses/30/lessons/181888
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
이런 문제에서 필터를 사용하면 간편하다.
element는 생략하고, 인덱스만 매개변수로 사용해서 인덱스 % n === 0 (인덱스 상 n번인) 요소들만 출력한다.
인덱스는 어떻게 필터를 걸어야 하는지 몰랐는데 이렇게 하는 거였다.
728x90
'👋🏻 JavaScript > 📖 자바스크립트 ES6+' 카테고리의 다른 글
[JavaScript] Generator & Iterator (0) | 2023.05.12 |
---|---|
[JavaScript] 정규표현식 알아보기 (0) | 2023.04.28 |
[JavaScript] map() 이란? (0) | 2023.04.25 |
[JavaScript] splice와 slice 비교하기 (0) | 2023.04.19 |
[JavaScript] 정규 표현식 공부하기 3 (0) | 2023.03.26 |